I've been playing with the binomial function, and found that in the below code, rs *= x does not behave the same way as rs = rs * x. When I set FAIL to True, I get a different result. Both results are below.
I had read that the two were equivalent. What am I missing? thanks, -= miles =- #!/usr/bin/python2 import sys FAIL= True if len(sys.argv)>1 else False def bin(n,k): rs=1 k=min(k,n-k) for i in range(1,k+1): if FAIL: rs *= (n-(i-1))/i # these should be the same, else: rs = rs * (n-(i-1))/i # but apparently are not return rs for n in range(10): for k in range(n+1): print bin(n,k), print'' ------------------- output ------------------------- $ pascal2 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 $ pascal2 fail 1 1 1 1 2 1 1 3 3 1 1 4 4 4 1 1 5 10 10 5 1 1 6 12 12 12 6 1 1 7 21 21 21 21 7 1 1 8 24 48 48 48 24 8 1 1 9 36 72 72 72 72 36 9 1 -- https://mail.python.org/mailman/listinfo/python-list