Soalan: Terdapat 100 orang di dalam bilik, setiap seorang daripada mereka mempunyai 100 yuan, dan mereka sedang bermain permainan. Dalam setiap pusingan permainan, semua orang perlu mengeluarkan satu dolar dan secara rawak memberikannya kepada orang lain Apakah agihan kekayaan 100 orang ini akhirnya?
Tebak, selepas 10,000 pertukaran, anda fikir keputusan akhir akan seperti apa?
Jawapannya begini.
Adakah ia berbeza daripada pemikiran intuitif anda? Adakah anda fikir ia diagihkan sama rata pada mulanya?
Sebenarnya pada awalnya ramai yang tidak sangka hasilnya begini.
Kami menggunakan Java GUI untuk memahami masalah ini secara visual.
Mula-mula mulakan data Pada mulanya, semua orang mempunyai 100 yuan.
<code> // 初始化数据<br> money = new int[100];<br> for(int i = 0 ; i < money.length ; i ++)<br/> money[i] = 100;</code>
Kemudian dalam setiap pusingan permainan, semua orang perlu mengeluarkan satu dolar dan memberikannya kepada orang lain secara rawak ,
<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>
Tidak cukup intuitif? Kemudian kita boleh menyusun dahulu dan kemudian memaparkan.
<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>
Atas ialah kandungan terperinci Analisis contoh visualisasi Java GUI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!