Вопрос задан 04.06.2023 в 14:55. Предмет Информатика. Спрашивает Кубряк Сергей.

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
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Фёдоров Ваня.

Ответ:

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}')

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример программы на Python, которая генерирует случайные числа и подсчитывает количество чисел в каждой группе:

python
import 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 может быть инициализирован различными способами, результаты могут незначительно отличаться от запуска к запуску. Однако при увеличении количества сгенерированных чисел результаты должны приближаться к равномерному распределению.

0 0

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

Последние заданные вопросы в категории Информатика

Задать вопрос