摘要:来表现百人分钱问题的,现在记录一下实现和自己的思考。百人分钱题房间里有个人,每人都有元钱,他们在玩一个游戏。
JFrame来表现百人分钱问题的,现在记录一下实现和自己的思考。
百人分钱题:房间里有100个人,每人都有100元钱,他们在玩一个游戏。每轮游戏中, 每个人都要拿出一元钱随机给另一个人,最后这100个人的财富分布是怎样的?
人们一般都会觉得后面应该财富分配也是差不多的,毕竟每个人失去钱的概率和得到钱的概率都是一样的,但在很多事情上人们的感觉都是不准的,例如视觉欺骗,眼见都不一定为实
面对这种情况我们为什么不写一个程序来验证呢?身为一个初级程序员,在解决问题的时候却老是想不到利用计算机,这是不好的,我们完全可以利用计算机去解决很多问题并且在解决问题的过程中自己也能得到提升,何乐而不为呢?产生这了个意识,也算这个教程的收获之一吧。
算法实现这个算法可以说十分简单
用一个无限循环,然后每次一个人减少一块另一个人增加一块
然后把每个人的钱用矩形表现出来
private void run(){ while(true){ Arrays.sort(money); frame.render(money); AlgoVisHelper.pause(DELAY); for (int k = 0 ; k < 50 ; k ++){ for (int i = 0 ; i < money.length ; i ++) { int j = (int)(Math.random() * money.length); money[i] -= 1; money[j] += 1; } } } }
上面就是算法的逻辑代码,绘图代码就不再给出了,若是想获得完整代码可以访问:
https://github.com/mengyunzhi/secondOf2018/tree/liyiheng/2018-9-20/src
下面是实现效果
特别多钱,但是我们都知道得到的所谓的随机数是伪随机数,是根据算法有规律的生成的产生上面的情况会不会是因为这个随机数并不随机的原因,但我看网上的对这个问题的解法都没说这个,也许是我对这个“伪随机数”的说法还不够深吧,只能继续学习留待以后解决了。
总结通过这次学习了解了java的JFrame类,虽然已经快淘汰了,同时产生了用计算机解决问题的思想,虽然现在技术问题能解决的并不多,同时用动画实现算法无疑是生动有趣的,对算法的理解和兴趣都有了很大的提升。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/77233.html
摘要:微信小程序自年发布至今,以其速度快体验棒无适配等优点,不断实现着使应用触手可及的梦想,为用户生活的各个方面带来了便利。 微信小程序自2017年发布至今,以其 速度快、体验棒、无适配等优点,不断实现着使应用触手可及的梦想,为用户生活的各个方面带来了便利。 showImg(https://segmentfault.com/img/remote/1460000019836007?w=1080...
摘要:摘要据了解,借助阿里云,上汽乘用车实现了工程开发仿真能力升级,仿真计算效率提升了,使工程开发人员更加专注于产品设计和性能优化,打造出世界级产品的高品质。 摘要: 据了解,借助阿里云,上汽乘用车实现了工程开发仿真能力升级,仿真计算效率提升了25%,使工程开发人员更加专注于产品设计和性能优化,打造出世界级产品的高品质。今年北京车展上全球首秀的概念车MG X-Motion,其量产车的卓越整车...
摘要:核心子进程运行控制。由应用来看,关键是录制屏幕和录制摄像头,以及用快捷键控制在这两者之间切换。限制条件是超过三个月快捷键失效。实现分两步安装时在注册表特定位置,假如是,写入目录相关信息。在程序运行时,检测当前目录是否存在于注册表下。 录制项目终于做完,不用总是提醒自己抓紧时间这样来想问题了。在完成之后带着一些满足感,回头看看哪些地方是需要改进的,哪些地方又是有更好的替代方案,自己又有哪...
阅读 2472·2023-04-25 18:13
阅读 713·2021-11-22 12:10
阅读 2938·2021-11-22 11:57
阅读 2084·2021-11-19 11:26
阅读 2077·2021-09-22 15:40
阅读 1365·2021-09-03 10:28
阅读 2614·2019-08-30 15:53
阅读 1847·2019-08-30 15:44