Глава 15 • Генерирование данных
Беглое знакомство с результатами показывает, что класс
Die
работает. В результа-
тах встречаются граничные значения 1 и 6, то есть модель возвращает наименьшее
и наибольшее возможное значение; значения 0 и 7 не встречаются, а значит, все
результаты лежат в диапазоне допустимых значений. Также в выборке встречаются
все числа от 1 до 6, то есть представлены все возможные результаты.
Анализ результатов
Чтобы проанализировать результаты бросков одного кубика D6, мы подсчитаем,
сколько раз выпадало каждое число:
die_visual.py ...
# Моделирование серии бросков с сохранением результатов в списке.
results = []
❶
for roll_num in range(1000):
result = die.roll()
results.append(result)
# Анализ результатов.
frequencies = []
❷
for value in range(1, die.num_sides+1):
❸
frequency = results.count(value)
❹
frequencies.append(frequency)
print(frequencies)
Так как Plotly используется для анализа, а не для вывода результатов, количество
моделируемых бросков можно увеличить до 1000
. Для анализа создается пустой
список
frequencies
, в котором хранится количество выпадений каждого значения.
Программа перебирает возможные значения (от 1 до 6 в данном случае) в цикле
,
подсчитывает количество вхождений каждого числа в результатах
, после чего
присоединяет полученное значение к списку
frequencies
. Содержимое списка
выводится перед построением визуализации:
[155, 167, 168, 170, 159, 181]
Результаты выглядят разумно: мы видим все шесть частот, по одной для каждого
возможного результата при броске D6, и ни одна из частот не выделяется на общем
фоне. А теперь займемся наглядным представлением результатов.
Построение гистограммы
Имея список частот, можно построить
гистограмму результатов. Гистограмма пред-
ставляет собой столбцовую диаграмму, наглядно отображающую относительные
частоты результатов. Код построения гистограммы выглядит так: