gpt4 book ai didi

python - 为什么 sympy.simplify 会改变随机状态

转载 作者:行者123 更新时间:2023-12-01 02:53:37 26 4
gpt4 key购买 nike

以下测试失败:

def test_sympy_simplify():
import sympy
import random
random.seed(42)
state = random.getstate()
expr = "sin(x)**2 + cos(x)**2"
sympy.simplify(expr)
assert state == random.getstate()

为什么会失败?为什么简化需要随机?多次运行此代码片段时,状态变化似乎也有所不同。

最佳答案

这个问题我追查过一次:https://nedbatchelder.com/blog/201302/hunting_a_random_bug.html

这是因为导入 sympy 会导入它的测试助手,而测试助手的定义如下:

class SymPyTests(object):
def __init__(self, ..., seed=random.random()):
#...
self._seed = seed

阅读博客文章,了解我是如何发现它的,以及错误喜剧的其他方面。

关于python - 为什么 sympy.simplify 会改变随机状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44468597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com