使用随机随机从-100到100的随机浮点数

时间:2017-01-19 20:13:56

标签: python random range

我想使用random.random()生成随机浮点数并使用一些数学修改输出,这样最终得到-100到+100。使用数学我想使用乘法和减法来生成-100到+100范围内的三个随机浮点数。

这是我的代码:

import random
random_float = (random.random())
print("First random float between -100 and +100:", random_float - 10)
print("Second random float between -100 and +100:", random_float * 70)
print("Third random float between -100 and +100:", random_float * 100)

这是我的输出:

First random float between -100 and +100: -9.932043497731886
Second random float between -100 and +100: 4.756955158768027
Third random float between -100 and +100: 6.795650226811468

这看起来不错吗?

3 个答案:

答案 0 :(得分:5)

random.uniform(A,B)

您可以使用random.uniform(a,b)

def zigZag(arr):
    srt = sorted(arr)
    left = 0
    right = len(srt)-1
    result = []
    while left < right:
        result.append(srt[right])
        right -= 1
        if left < right:
            result.append(srt[left])
            left += 1
    return result

如果您绝对想自己计算:

random.uniform(-100,100)

您的代码

以下是将其集成到代码中的方法。请注意,如果您想要独立的随机数字,则需要调用random.random()*200-100 三次:

random

输出:

import random

for ordinal in ['First', 'Second', 'Third']:
    random_float = random.uniform(-100,100)
    print "%s random float between -100 and +100: %f" % (ordinal, random_float)

答案 1 :(得分:0)

由于np.random.rand()吐出0到1之间的数字,您需要执行以下操作:

import numpy as np

random_float = 200*np.random.rand()-100

通常,要在a和b之间生成随机数,您应该

(b-a)*np.random.rand() +a

答案 2 :(得分:0)

random*100的最后一次尝试是正确的,但这只会产生0(含)到100(不包括)。如果你想要介于-100到100之间,你应该这样做:

random_float = random.random()
print("Random float between -100 and +100:", (random_float * 200)-100)

然而,其他两个例子是不正确的。在第一个示例中,您的数字将始终位于[-10.0,-9.0)的区间内。在第二个示例中,您的数字将始终位于[0.0,70.0)的区间内。当然,这些数字在这些范围内是随机的,但它们不会在您指定的 -100到100 范围内。

如果你想要3个相同范围内的随机数(-100到100),那么你真的需要调用random.random()三次。