
Python Проверка распределения генератора псевдослучайных чисел Компьютер не умеет генерировать
по-настоящему случайные числа, поскольку в компьютере все определено очень четко. Однако существуют специальные алгоритмы, которые позволяют генерировать числа, похожие на случайные. По логике вещей генератор случайных чисел должен генерировать числа в соответствии с равномерным распределением. То есть, например, если бы мы подбрасывали монету, то выпадение орла или решки было бы примерно одинаковое количество раз, при достижении статистически значимого результата. Проверим, как работает генератор псевдослучайных чисел random.randint() в Python. Нужно написать программу, которая сгенерирует много случайных чисел от 0 до 99. При этом мы будем разделять их на 10 групп: 0-9, 10-19, 20-29 и так далее. Необходимо вывести, какое количество чисел будет принадлежать каждой группе. Пример вывода: Number of samples: 100000 Group 0 9: 9916 Group 10 - 19: 9930 Group 20 - 29: 10070 Group 30 - 39: 10024 Group 40 - 49: 9983 Group 50 - 59: 10036 Group 60 - 69: 10083 Group 70 - 79: 10066 Group 80 - 89: 9902 Group 90 - 99: 9990

Ответы на вопрос

Ответ:
from random import randint
numberOfSamples = 100000
groups = {'0 - 9': 0, '10 - 19': 0, '20 - 29': 0, '30 - 39': 0, '40 - 49': 0, '50 - 59': 0, '60 - 69': 0, '70 - 79': 0, '80 - 89': 0, '90 - 99': 0}
for i in range(numberOfSamples):
number = randint(0, 99)
if number < 10:
groups['0 - 9'] += 1
elif number < 20:
groups['10 - 19'] += 1
elif number < 30:
groups['20 - 29'] += 1
elif number < 40:
groups['30 - 39'] += 1
elif number < 50:
groups['40 - 49'] += 1
elif number < 60:
groups['50 - 59'] += 1
elif number < 70:
groups['60 - 69'] += 1
elif number < 80:
groups['70 - 79'] += 1
elif number < 90:
groups['80 - 89'] += 1
else:
groups['90 - 99'] += 1
print(f'Number of samples: {numberOfSamples}')
for key, value in groups.items():
print(f'Group {key}: {value}')



Вот пример программы на Python, которая генерирует случайные числа и подсчитывает количество чисел в каждой группе:
pythonimport random
# Создаем словарь для подсчета количества чисел в каждой группе
groups = {i: 0 for i in range(0, 100, 10)}
# Генерируем случайные числа и подсчитываем их количество в каждой группе
num_samples = 100000
for _ in range(num_samples):
num = random.randint(0, 99)
for group in groups:
if num >= group and num < group + 10:
groups[group] += 1
break
# Выводим результаты
print("Number of samples:", num_samples)
for group, count in groups.items():
print("Group {} - {}: {}".format(group, group + 9, count))
Эта программа использует функцию random.randint(0, 99)
для генерации случайных чисел от 0 до 99. Затем она проходит по каждому сгенерированному числу и определяет, в какую группу оно попадает, увеличивая соответствующий счетчик в словаре groups
. Наконец, программа выводит результаты, показывая количество чисел в каждой группе.
Примечание: Поскольку генератор псевдослучайных чисел в Python может быть инициализирован различными способами, результаты могут незначительно отличаться от запуска к запуску. Однако при увеличении количества сгенерированных чисел результаты должны приближаться к равномерному распределению.


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili