问题:房间里有 100 个人,每人都有 100 元钱,他们在玩一个游戏。每轮游戏中,每个人都要拿出一元钱随机给另一个人,最后这 100 个人的财富分布是怎样的?
猜一下,经过 10000 次的交换,你们认为最后的结果会是怎么样子的?
答案是这个样子的。
和你的直觉想法有出入吗?是不是一开始认为是平均分布的?
事实上,很多人一开始都没想到结果会是这样子的。
立即学习“Java免费学习笔记(深入)”;
我们借助 Java GUI 来可视化的理解这个问题。
首先初始化数据,一开始每人都有 100 元钱。
// 初始化数据<br/> money = new int[100];<br/> for(int i = 0 ; i < money.length ; i ++)<br/> money[i] = 100;
然后每轮游戏中,每个人都要拿出一元钱随机给另一个人,
for(int i = 0 ; i < money.length; i ++){<br/> if(money[i] > 0){<br/> int j = (int)(Math.random() * money.length);<br/> money[i] -= 1;<br/> money[j] += 1;<br/> }<br/> }<br/>
不够直观?那我们可以先排序再显示。
Arrays.sort(money);<br/>for(int i = 0 ; i < money.length; i ++){<br/> if(money[i] > 0){<br/> int j = (int)(Math.random() * money.length);<br/> money[i] -= 1;<br/> money[j] += 1;<br/> }<br/> }
以上就是Java GUI可视化实例分析的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号