如何修复随机生成的值?
我遇到了一个问题,希望有人能帮帮我。以下是我的示例代码。
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
不过我发现,在Python的命令行中,每次我运行Ft这个函数时,它给我的结果都不一样……看起来在这个函数里,每次for循环迭代时,调用一次r就会得到一个随机数……但是当我调用这个函数时,初始的随机数并没有固定下来……我该怎么解决这个问题呢?如果我用b=copy(r)然后在Ft函数里调用b,这样行不行?谢谢!
相关问题:
2 个回答
1
我觉得你是想说“列表”,而不是“数组”。你在尝试使用一些函数,但其实并不需要。如果我理解得没错的话,你是想修改一组随机的小数:
import random
r=[random.uniform(-R,R) for x in range(3)]
def ft(r):
for i in range(len(r)):
r[i]=???
19
你的意思是你希望每次运行这个函数时,random.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)])