2016-02-26 160 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)