我是个python入门小白,然后最后一题无标准答案,我的方法是可以属于操作的(但肯定还有更清晰的办法),用Matplotlib库模拟掷骰子是参照了一个大佬的方法(链接附在代码下了),用Plotly模拟随机漫步则是自己看了一些别的文章摸索出来的。
第一个是用Matplotlib库模拟掷骰子
##使用Matplotlib模拟掷骰子
#从使用Plotly库改用Matplotlib库
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
from random import randint
from die import Die
#创建三个D6。
die_1 = Die(6)
die_2 = Die(6)
die_3 = Die(6)
#掷几次骰子并将结果存储在一个列表中。
results = []
for roll_num in range(10000):
result = die_1.roll() + die_2.roll() + die_3.roll()
results.append(result)
#分析结果。
frequencies = []
max_result = die_1.num_sides + die_2.num_sides + die_3.num_sides
for value in range(3, max_result+1):
frequency = results.count(value)
frequencies.append(frequency)
#对结果进行可视化。
plt.style.use('bmh')
fig, ax = plt.subplots()
ax.bar(range(3, max_result+1), frequencies)
ax.set_title("Results of rolling three D6 dice 10000 times")
ax.set_xlabel("Result")
ax.set_ylabel("Frequency of Result")
# 设置x轴间隔为1
xmajorLocator = MultipleLocator(1)
ax.xaxis.set_major_locator(xmajorLocator)
plt.show()
这是大佬文章链接:
https://blog.csdn.net/weixin_44390462/article/details/105458850?spm=1001.2014.3001.5506
第二个是用Plotly模拟随机漫步
##使用Plotly模拟随机漫步
#从使用Matplotlib库改用Plotly库
#绘制随机漫步图
from plotly import offline
from plotly.graph_objs import Scatter, Layout
import plotly.graph_objs as go
from random_walk import RandomWalk
class Rw:
#创建类,使其易表示。
#创建一个RandomWalk的实例。
rw = RandomWalk(5000)
rw.fill_walk()
#对结果进行可视化。
#这里是Plotly画出图像的关键
point_numbers = range(rw.num_points)
trace0 = go.Scatter(x=rw.x_values, y=rw.y_values, mode = 'markers')
data = [trace0]
x_axis_config = {'title':'x轴坐标'}
y_axis_config = {'title':'y轴坐标'}
my_layout = Layout(title='随机漫步 5000次的结果',
xaxis=x_axis_config, yaxis=y_axis_config)
offline.plot({'data':data, 'layout':my_layout},
filename='random_walk.html')
有诸多错误,请各位海涵与矫正。