创建"随机"除了时间

时间:2016-07-11 09:19:47

标签: python random time range generator

我想创建一个"随机" 2个边之间的整数的数字生成器。此外,我想创建相同的东西,但两个边之间的浮点数(如random.random,但我想要的范围)。

时间戳需要时间。

我目前正在学习生成随机数的方式(我使用这种方式将时间戳作为开头):

a = int
b = int
m = int
number = time.mktime (time.localtime ())

for x in range (0, m):
    number = (a*number + c) % m
    print (number)

(int可以是任何整数。有多种方法可以优化返回值(详见此处解释))

这是我学会了随机使用"整数。我目前正在寻找一种方法来解决上述问题(如果可能的话)。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

鉴于您始终以模m为模,m是结果的最大值。此外,在minmax之间找到一个随机数与在0和max - min之间找到一个随机数,并在其中添加min相同。

def rand_range(min, max, a, b, n):
    m = max - min
    number = time.mktime (time.localtime ())

    for x in range (0, m):
        number = (a*number + b) % m

    return number + min

要从中获取浮点数,可以使用上面的函数来定义:

def rand_range_float(min, max, density, a, b, n):
    rand_int = rand_range(0, density, a, b, n)
    return min + (float(rand_int)/density)*(max-min)

在此函数中,density指定所需的浮点值的数量。例如,如果您调用rand_range_float(0, 1, 2, a, b, c),则该函数可以返回2个可能的值; 0.0或0.5