1-简单的Python程序-模拟抛硬币

1-简单的Python程序-模拟抛硬币,第1张

我们这次的任务是利用Python来模拟抛硬币的情况,并且记录正面朝上占所有试验中的比率,大家是不是想起了课堂中提到过的蒲丰,皮尔逊等人做的试验?当然,我们现在已经不再需要再去扔几千次,几万次硬币了;Python为我们提供了一个相当便捷的解决方案。Python 的randint(0,1)函数可以等概率,随机地返回0与1两个数,我们可以将返回的数值0记为硬币的反面,1记为硬币的正面,所以问题就转换成了:统计大量重复试验中,结果为1占总试验次数的比例。

简单地画一个流程图,希望有助于大家理解。

*流程图是网上使用ProcessOn画的,一个免费的在线流程图绘制平台,简单容易上手,强烈安利给大家~

废话不多说,上图:

可以看见,随着硬币投掷次数的增加,正面朝上的几率逐渐稳定在0.5,这就是我们在课堂上讲过的内容:在重复试验中,我们可以使用频率的稳定值作为事件发生的概率。

怎么样,是不是学到了一招?

在这个程序的基础上,我相信大家有能力进行进一步地延伸与发散。

大家可以尝试着去完成这样三个问题:

1,比较一下当投掷次数为100次,1000次与10000次的图像差别(提示:为了使区别更加显著,大家可以尝试将X轴使用对数坐标表示)

好的,就先写到这里,感觉有意思的话点个赞再走呗~

Initiator Chain是一种基于事件的编程模式,通常用于GUI编程和Web开发。在Python中,可以使用事件循环库asyncio来模拟Initiator Chain的连续访问。

下面是一个示例代码,其中定义了两个事件处理器(event handler):handler1和handler2。handler1接收到事件后,通过asyncio.sleep()模拟了一个异步 *** 作,并将控制权传递给handler2。handler2在收到事件后,打印出一条消息。

import asyncio

async def handler1():

print("handler1 started")

await asyncio.sleep(1)

print("handler1 finished")

return "result from handler1"

async def handler2(result_from_handler1):

print("handler2 started")

print("result from handler1:", result_from_handler1)

print("handler2 finished")

async def main():

result_from_handler1 = await handler1()

await handler2(result_from_handler1)

if __name__ == "__main__":

loop = asyncio.get_event_loop()

loop.run_until_complete(main())

在这个示例代码中,main()函数定义了一个Initiator Chain,首先调用handler1,然后将handler1的返回值作为参数传递给handler2。handler1和handler2通过asyncio库中的协程(coroutine)定义,因此可以使用await关键字来等待异步 *** 作完成。

运行这个程序,可以看到如下输出

handler1 started

handler1 finished

handler2 started

result from handler1: result from handler1

handler2 finished

在这个输出中,可以看到handler1和handler2的执行顺序,以及handler1的返回值如何传递给handler2。这个示例代码可以作为使用asyncio库模拟Initiator Chain的起点,可以根据需要修改handler1和handler2的实现,来实现不同的业务逻辑。

有帮到你的话望采纳 谢谢~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11727219.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存