Hi
I have written very simple function, which code I paste below. The
thing is that it produces completely unexpected results. I paste them
below. Please let me know if this is a bug or I just do something
completely wrong. I change in tests only the modulus M.
def MLCG_S(B,M,N,x0):
x = x0
L = []
for i in range(1,N):
x = Mod(B*x, M) #MLCG(B,M,x)
print x==B
print (B-M)
print (x-M)
print M-B
print M-x
return L;
____________________2^31-1____________________
Invocation: LCG_16807 = MLCG_S(16807,2^31-1,2,1);
Result:
True
-2147466840
16807
2147466840
2147466840
___________________2^20-1____________________
Invocation:LCG_16807 = MLCG_S(16807,2^20-1,2,1);
Result:
True
-1031768
16807
1031768
1031768
___________________2^10-1____________________
Invocation:LCG_16807 = MLCG_S(16807,2^10-1,2,1);
Result:
True
15784
439
-15784
584
Above, not only the first two differences are different, but also the
last two differences are different!
Cheers
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org