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 的影响
在模拟中使用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 的影响