抄写一个使用Plotly模拟投掷骰子的程序---Python

1、投掷一个6面骰子,投掷1000次,统计每个面出现的频率的情况。

程序:

1>创建一个Die类,

from random import randint

class Die:
	"""表示一个骰子的类"""
	def __init__(self,num_sides=6):
		"""骰子默认为6个面"""
		self.num_sides = num_sides

	def roll(self):
		"""返回一个位于1和骰子面数之间的随机值"""
		return randint(1,self.num_sides)


		

2>投骰子,统计结果,绘制直方图

from plotly.graph_objs import Bar,Layout
from plotly import offline
from die import Die


#创建一个D6,
die = Die()

#投掷几次,并将结果存储在一个列表中,
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)

#对结果进行可视化,绘制直方图,
x_values = list(range(1,die.num_sides+1))	#可能出现的点数,
data = [Bar(x=x_values,y=frequencies)]		#绘制条形图数据集,包含存储x值和y值的列表,

x_axis_config = {'title':'结果'}
y_axis_config = {'title':'结果的频率'}
#Layout返回一个指定图表布局和配置的对象,
my_layout = Layout(title='掷一个D6 1000次的结果',xaxis=x_axis_config,
	yaxis=y_axis_config)	

offline.plot({'data':data,'layout':my_layout},filename='d6.html')


2、同时投掷两个骰子,统计点数之和,绘制直方图,

 

程序:

from plotly.graph_objs import Bar,Layout
from plotly import offline
from die import Die


#创建一个D6,
die_1 = Die()
die_2 = Die()

#投掷几次,并将结果存储在一个列表中,
results = []
for roll_num in range(1000):
	result = die_1.roll() + die_2.roll()
	results.append(result)


#分析结果
frequencies = []
max_result = die_1.num_sides + die_2.num_sides
for value in range(2,max_result+1):
	frequency = results.count(value)
	frequencies.append(frequency)

#print(frequencies)

#对结果进行可视化,绘制直方图,
x_values = list(range(2,max_result+1))	#可能出现的点数,
data = [Bar(x=x_values,y=frequencies)]		#绘制条形图数据集,包含存储x值和y值的列表,

x_axis_config = {'title':'结果','dtick':1}
y_axis_config = {'title':'结果的频率'}
#Layout返回一个指定图表布局和配置的对象,
my_layout = Layout(title='掷两个D6 1000次的结果',xaxis=x_axis_config,
	yaxis=y_axis_config)	

offline.plot({'data':data,'layout':my_layout},filename='d6_d6.html')


 

 

### 回答1: 可以这样写:def 二次方程(a, b, c): d = (b**2) - (4*a*c) if d < 0: print("方程无解!") elif d == 0: x = -b / (2 * a) print("方程有一个实根:", x) else: x1 = (-b + d**0.5) / (2 * a) x2 = (-b - d**0.5) / (2 * a) print("方程有两个实根:", x1, "和", x2) a = float(input("输入a: ")) b = float(input("输入b: ")) c = float(input("输入c: ")) 二次方程(a, b, c) ### 回答2: 下面是一个Python编写的求解一元二次方程的程序: ```python import math def quadratic_equation(a, b, c): # 首先判断方程是否为一元二次方程 if a == 0: return "这不是一个二次方程!" # 计算判别式 delta = b ** 2 - 4 * a * c # 根据判别式的值进行分类讨论 if delta > 0: # 有两个不相等的实数根 x1 = (-b + math.sqrt(delta)) / (2 * a) x2 = (-b - math.sqrt(delta)) / (2 * a) return "方程的解为 x1 = {:.2f}, x2 = {:.2f}".format(x1, x2) elif delta == 0: # 有两个相等的实数根 x = -b / (2 * a) return "方程的解为 x = {:.2f}".format(x) else: # 没有实数根,存在虚数根 real_part = -b / (2 * a) imaginary_part = math.sqrt(-delta) / (2 * a) return "方程的解为 x1 = {:.2f} + {:.2f}i, x2 = {:.2f} - {:.2f}i".format(real_part, imaginary_part, real_part, imaginary_part) # 测试例子 print(quadratic_equation(1, -3, 2)) # 方程的解为 x1 = 2.00, x2 = 1.00 print(quadratic_equation(2, 2, 1)) # 方程的解为 x = -0.50 print(quadratic_equation(1, 2, 3)) # 方程的解为 x1 = -1.00 + 1.41i, x2 = -1.00 - 1.41i ``` 这个程序首先判断输入的方程是否为一元二次方程,然后根据判别式(b^2 - 4ac)的值分类讨论,从而计算出方程的解。如果判别式大于0,则方程有两个不相等的实数根;如果判别式等于0,则方程有两个相等的实数根;如果判别式小于0,则方程没有实数根,存在虚数根。最后,程序输出方程的解。 ### 回答3: 一元二次方程是形如$ax^2+bx+c = 0$的方程,其中$a\neq 0$。为了求解一元二次方程,我们可以使用求根公式: $$x = \frac{-b\pm\sqrt{b^2-4ac}}{2a}$$ 下面是使用Python编写的求解一元二次方程的程序: ```python import cmath def solve_quadratic_equation(a, b, c): # 计算判别式 discriminant = (b ** 2) - (4 * a * c) # 判断判别式的值,来确定方程的解的类型 if discriminant > 0: # 如果判别式大于零,方程有两个实根 root1 = (-b + cmath.sqrt(discriminant))/(2*a) root2 = (-b - cmath.sqrt(discriminant))/(2*a) return root1, root2 elif discriminant == 0: # 如果判别式等于零,方程有一个实根 root = -b/(2*a) return root else: # 如果判别式小于零,方程有两个复根 complex_root1 = (-b + cmath.sqrt(discriminant))/(2*a) complex_root2 = (-b - cmath.sqrt(discriminant))/(2*a) return complex_root1, complex_root2 def main(): a = float(input("请输入一次项系数a: ")) b = float(input("请输入二次项系数b: ")) c = float(input("请输入常数项系数c: ")) # 调用函数求解一元二次方程 result = solve_quadratic_equation(a, b, c) print("方程的解为:", result) # 调用主函数 main() ``` 在程序中,首先导入cmath库以支持复数的计算。然后定义一个名为 `solve_quadratic_equation` 的函数,该函数接受三个系数 a、b、c作为参数,并根据判别式的值来决定方程的解类型,返回对应的解。在 `main` 函数中,通过用户的输入获取方程的系数,将系数传递给 `solve_quadratic_equation` 函数来求解方程。最后,将求得的解输出到屏幕上。 这个程序可以求解一元二次方程的实根和复根,并根据判别式的值来区分不同的解类型。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值