2016-02-26 165 views
-2

我已经写了一个FOR循环来调用一个函数100次以获得100个随机数,我现在需要计算所有生成的随机数的平均数。我怎样才能做到这一点?这是我站起身来,到目前为止如何计算生成的随机数的平均数量?

import random 

num1 = int(input("Input First number ")) 
num2 = int(input("Input Second number ")) 

for i in range(10): 
    print(random.uniform(num1, num2), end = "\t") 
+0

你有没有考虑节省数以某种方式,而不是只打印呢? – TigerhawkT3

回答

2

首先,你的函数只正在运行的10倍。您需要存储您生成的值,而不是将它们打印到屏幕上。您可以通过将其存储在列表中来完成此操作。

要获得100个随机变量的列表,你可以做[random.uniform(num1, num2) for i in range(100)]

然后,你需要找到这个的平均值。要获得总金额,您可以做sum(list)。要获取值的数量,请执行len(list)。如果我们结合这一切一起,我们得到:

import random 

num1 = int(input("Input First number: ")) 
num2 = int(input("Input Second number: ")) 

random_numbers = [random.uniform(num1, num2) for i in range(100)] 
print(sum(random_numbers)/len(random_numbers)) 

输出是:

>>> import random 
>>> num1 = int(input("Input First number: ")) 
Input First number: 10 
>>> num2 = int(input("Input Second number: ")) 
Input Second number: 20 
>>> random_numbers = [random.uniform(num1, num2) for i in range(10)] 
>>> random_numbers 
[13.083389212287019, 12.551686149990369, 13.881302022239865, 12.5156539109837, 12.340949073439575, 13.693758114264867, 13.972147752101735, 14.111313446849902, 11.693700678679372, 18.136716333128035] 
>>> print(sum(random_numbers)/len(random_numbers)) 
13.5980616694 
+0

这对我有效!谢谢:D –

+0

很高兴听到这个消息,如果它有帮助,请选择接受的答案! –

3
import random 
rand_nums = [random.uniform(num1, num2) for i in range(10)] 
average = sum(rand_nums)/len(rand_nums) 

或者,如果你喜欢使用numpy

import numpy as np 
rand_nums = np.random.uniform(num1,num2,10) 
average = rand_nums.mean() 
+0

Python 3.4中有''statistics.mean()'](https://docs.python.org/3/library/statistics.html#statistics.mean) – jfs

1

我认为你必须存储一些数字,而不是打印出来。如果您使用列表,则可以计算总和,然后除以长度。

import random 

num1 = int(input("Input First number ")) 
num2 = int(input("Input Second number ")) 

numbers = [] 
for i in range(10): 
    numbers.append(random.uniform(num1, num2)) 

print(numbers) 
print(sum(numbers)/len(numbers)) 
1

这是很基本的东西,希望这有助于:

所有的
import random 
num1 = int(input("Input First number ")) 
num2 = int(input("Input Second number ")) 

sum = 0 
numbers = 100 
for i in range(numbers): 
    random_number = random.uniform(num1, num2) 
    sum += random_number 
avarage = sum/numbers 
print(avarage)