問題:房間裡有 100 個人,每人都有 100 元錢,他們在玩一個遊戲。每輪遊戲中,每個人都要拿出一元錢隨機給另一個人,最後這 100 個人的財富分佈是怎樣的?
猜一下,經過 10000 次的交換,你們認為最後的結果會是怎麼樣子的?
答案是這個樣子的。
和你的直覺想法有出入嗎?是不是一開始認為是平均分佈的?
事實上,很多人一開始都沒想到結果會是這樣子的。
我們借助 Java GUI 來視覺化的理解這個問題。
先初始化數據,一開始每人都有 100 元。
<code> // 初始化数据<br> money = new int[100];<br> for(int i = 0 ; i < money.length ; i ++)<br/> money[i] = 100;</code>
然後每回合遊戲中,每個人都要拿出一元錢隨機給另一個人,
<code> 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></code>
不夠直覺?那我們可以先排序再顯示。
<code>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> }</code>
以上是Java GUI可視化實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!