sympy: what's wrong with this picture?
Carl Banks
pavlovevidence at gmail.com
Mon Mar 3 15:49:33 EST 2008
On Mar 3, 3:40 pm, Mensanator <mensana... at aol.com> wrote:
> Notice anything funny about the "random" choices?
>
> import sympy
> import time
> import random
>
> f = [i for i in sympy.primerange(1000,10000)]
>
> for i in xrange(10):
> f1 = random.choice(f)
> print f1,
> f2 = random.choice(f)
> print f2,
> C = f1*f2
> ff = None
> ff = sympy.factorint(C)
> print ff
>
> ## 7307 7243 [(7243, 1), (7307, 1)]
> ## 4091 6829 [(4091, 1), (6829, 1)]
> ## 8563 2677 [(2677, 1), (8563, 1)]
> ## 4091 6829 [(4091, 1), (6829, 1)]
> ## 8563 2677 [(2677, 1), (8563, 1)]
> ## 4091 6829 [(4091, 1), (6829, 1)]
> ## 8563 2677 [(2677, 1), (8563, 1)]
> ## 4091 6829 [(4091, 1), (6829, 1)]
> ## 8563 2677 [(2677, 1), (8563, 1)]
> ## 4091 6829 [(4091, 1), (6829, 1)]
>
> As in, "they're NOT random".
>
> The random number generator is broken by the sympy.factorint()
> function.
>
> Random.choice() works ok if the factorint() function commented out.
>
> ## 6089 1811 None
> ## 6449 1759 None
> ## 9923 4639 None
> ## 4013 4889 None
> ## 4349 2029 None
> ## 6703 8677 None
> ## 1879 1867 None
> ## 5153 5279 None
> ## 2011 4937 None
> ## 7253 5507 None
>
> This makes sympy worse than worthless, as it f***s up other modules.
Dude, relax.
It's just a bug--probably sympy is messing with the internals of the
random number generator. It would be a simple fix. Instead of
b****ing about it, file a bug report. Or better yet, submit a patch.
Carl Banks
More information about the Python-list
mailing list