Python编程:从入门到实践中第十五章的最后一题

我是个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')

有诸多错误,请各位海涵与矫正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值