资讯专栏INFORMATION COLUMN

学习图形化界面实现百人分钱问题的收获与问题

Corwien / 3028人阅读

摘要:来表现百人分钱问题的,现在记录一下实现和自己的思考。百人分钱题房间里有个人,每人都有元钱,他们在玩一个游戏。

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...

    buildupchao 评论0 收藏0
  • 阿里云HPC助力新制造 | 上汽仿真计算云SSCC

    摘要:摘要据了解,借助阿里云,上汽乘用车实现了工程开发仿真能力升级,仿真计算效率提升了,使工程开发人员更加专注于产品设计和性能优化,打造出世界级产品的高品质。 摘要: 据了解,借助阿里云,上汽乘用车实现了工程开发仿真能力升级,仿真计算效率提升了25%,使工程开发人员更加专注于产品设计和性能优化,打造出世界级产品的高品质。今年北京车展上全球首秀的概念车MG X-Motion,其量产车的卓越整车...

    stackvoid 评论0 收藏0
  • Python和FFmpeg强强联合

    摘要:核心子进程运行控制。由应用来看,关键是录制屏幕和录制摄像头,以及用快捷键控制在这两者之间切换。限制条件是超过三个月快捷键失效。实现分两步安装时在注册表特定位置,假如是,写入目录相关信息。在程序运行时,检测当前目录是否存在于注册表下。 录制项目终于做完,不用总是提醒自己抓紧时间这样来想问题了。在完成之后带着一些满足感,回头看看哪些地方是需要改进的,哪些地方又是有更好的替代方案,自己又有哪...

    ThreeWords 评论0 收藏0

发表评论

0条评论

Corwien

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<