М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения


Глава 15 • Генерирование данных Рис. 15.13



Pdf көрінісі
бет251/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   247   248   249   250   251   252   253   254   ...   334
Байланысты:
Изучаем Python

344
Глава 15 • Генерирование данных
Рис. 15.13.
Смоделированные результаты 1000 бросков двух шестигранных кубиков
dice_visual.py
from plotly.graph_objs import Bar, Layout
from plotly import offline
from die import Die
# Создание кубиков D6 и D10.
die_1 = Die()

die_2 = Die(10)
# Моделирование серии бросков с сохранением результатов в списке.
results = []
for roll_num in range(50000):
result = die_1.roll() + die_2.roll()
results.append(result)
# Анализ результатов.
...
# Визуализация результатов.
X_values = list(range(2, max_result+1))
data = [Bar(x=x_values, y=frequencies)]
x_axis_config = {'title': 'Result', 'dtick': 1}
y_axis_config = {'title': 'Frequency of Result'}

my_layout = Layout(title='Results of rolling a D6 and a D10 50000 times',
xaxis=x_axis_config, yaxis=y_axis_config)
offline.plot({'data': data, 'layout': my_layout}, filename='d6_d10.html')
Чтобы создать модель кубика D10, мы передаем аргумент 10 при создании второго 
экземпляра 
Die

и изменяем первый цикл для моделирования 50 000 бросков 


Моделирование бросков кубиков в Plotly
345
вместо 1000. Наименьший возможный результат, как и прежде, равен 2, зато наи-
больший увеличился до 16; мы соответственно изменяем заголовок, метки оси 
x
и метки серии данных 

.
На рис. 15.14 показана полученная диаграмма. Вместо одного наиболее вероят-
ного результата их стало целых пять. Это объясняется тем, что наименьшее (1+1) 
и наибольшее (6+10) значения по-прежнему могут быть получены только одним 
способом, но кубик D6 ограничивает количество способов генерирования средних 
чисел: суммы 7, 8, 9, 10 и 11 можно выбросить шестью способами. Следовательно, 
именно эти результаты являются наиболее частыми и все эти числа выпадают 
с равной вероятностью.
Рис. 15.14.
Результаты 50 000 бросков шести- и десятигранного кубиков
Возможность применения Plotly для моделирования бросков кубиков дает су-
щественную свободу при исследовании этого явления. За считаные минуты вы 
сможете смоделировать огромное количество бросков с разнообразными куби-
ками.


Достарыңызбен бөлісу:
1   ...   247   248   249   250   251   252   253   254   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет