我想使用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
这看起来不错吗?
答案 0 :(得分:5)
您可以使用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()
三次。