Sympy 重新配置随机种子

Sympy reconfigures the randomness seed

在模拟中使用Python符号计算模块"Sympy"非常困难,我需要有可靠的固定输入,为此我在随机模块中使用seed()。 然而,每次我调用一个简单的 sympy 函数时,它似乎都会用一个新值覆盖种子,从而每次都获得新的输出。我搜索了一下 found this。但是他们都没有解决方案。

考虑这段代码:

from sympy import *
import random
random.seed(1)
for _ in range(2):
    x = symbols('x')
    equ = (x** random.randint(1,5)) ** Rational(random.randint(1,5)/2)
    print(equ)

这输出

(x**2)**(5/2)
x**4

第一个 运行,

(x**2)**(5/2)
(x**5)**(3/2)

在第二个 运行 上,每次我 运行 脚本都会 returns 新输出。我需要一种方法来解决这个问题以强制使用 seed()。

这有帮助吗?来自 random 上的文档:

"You can instantiate your own instances of Random to get generators that don’t share state"

用法:

import random
# Create a new pseudo random number generator
prng = random.Random()
prng.seed(1)

这个数字生成器将不受 sympy 的影响