gagsl-py2 at yahoo.com.ar
Sun Mar 16 22:03:46 CET 2008
En Sat, 15 Mar 2008 18:57:36 -0200, Ravi Kumar <ra21vi at gmail.com> escribi�:
> An Interesting problem,
> A man has only 4 bricks of different weights, lies between 1-40KG,
> Also, the total weights of Brick A, B, C, D (ie A+B+C+D) is 40KG.
> The man uses that brick to calculate every possible weight
> from 1 KG to 40 KG in his shop. (only whole numbers 1KG, 2KG etc, not
> I thought it would really be good to solve it by python, and right now on
> the mid-way solving using very dirty approach.
> But I feel, using SETs with python in such would solve it better.
> Can anyone come with good solution, and maybe solution showing usage of
This isn't specifically Python problem; some hints anyway:
a) Any integer can be written as a base-3 number (anyone knows base-10
numbers, and you know base-2/binary numbers, I presume).
x = a[n]*3**n + a[n-1]*3**(n-1) + ... + a*3 + a
where all a[i] are either 0, 1 or 2
b) 2*3**n = (3-1)*3**n = 3**(n+1) - 3**n
So you can replace every a[i]==2 in the a) expression with (-1), adding +1
to the coefficient to the left (why?). You end up with an expression
involving only +1 and -1 coefficients (why?)
c) You can compare, add and substract weights using an old two-plate
More information about the Python-list