2016-02-26 5 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

есть ['statistics.mean()' в Python 3.4+] (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) 
Смежные вопросы