我遇到了一个问题,在我的代码中,任何人都可以提供帮助.这是示例代码.
from random import *
from numpy import *
r=array([uniform(-R,R),uniform(-R,R),uniform(-R,R)])
def Ft(r):
for i in range(3):
do something here, call r
return something
Run Code Online (Sandbox Code Playgroud)
然而我发现在python shell中,每次运行函数Ft时,它都会给我不同的结果.....似乎在函数内,在for循环的每次迭代中,调用r一次,它给出一次随机数...但是当我调用函数时没有修复初始随机数....我该如何解决?如何使用b = copy(r)然后在Ft函数中调用b?谢谢
Sim*_*lan 11
你的意思是你希望randon.uniform()
每次运行函数时调用都返回相同的值序列吗?
如果是这样,您需要调用random.seed()
以将序列的开头设置为固定值.如果不这样做,则使用当前系统时间来初始化随机数生成器,这意味着它每次都会生成不同的序列.
这样的事情应该有效
random.seed(42) # Set the random number generator to a fixed sequence.
r = array([uniform(-R,R), uniform(-R,R), uniform(-R,R)])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11710 次 |
最近记录: |