【问题标题】:Sympy reconfigures the randomness seedSympy 重新配置随机种子
【发布时间】:2016-05-04 00:22:40
【问题描述】:

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

考虑这段代码:

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)

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

【问题讨论】:

  • 我在 SymPy 的开发版(即将作为新版本发布)中对此进行了测试,似乎已修复。

标签: python python-3.x random sympy random-seed


【解决方案1】:

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

“您可以实例化自己的 Random 实例以获取不共享状态的生成器”

用法:

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

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

【讨论】:

    猜你喜欢
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 2012-11-26
    相关资源
    最近更新 更多