摘要:來表現百人分錢問題的,現在記錄一下實現和自己的思考。百人分錢題房間里有個人,每人都有元錢,他們在玩一個游戲。
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類,雖然已經快淘汰了,同時產生了用計算機解決問題的思想,雖然現在技術問題能解決的并不多,同時用動畫實現算法無疑是生動有趣的,對算法的理解和興趣都有了很大的提升。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/77233.html
摘要:微信小程序自年發布至今,以其速度快體驗棒無適配等優點,不斷實現著使應用觸手可及的夢想,為用戶生活的各個方面帶來了便利。 微信小程序自2017年發布至今,以其 速度快、體驗棒、無適配等優點,不斷實現著使應用觸手可及的夢想,為用戶生活的各個方面帶來了便利。 showImg(https://segmentfault.com/img/remote/1460000019836007?w=1080...
摘要:摘要據了解,借助阿里云,上汽乘用車實現了工程開發仿真能力升級,仿真計算效率提升了,使工程開發人員更加專注于產品設計和性能優化,打造出世界級產品的高品質。 摘要: 據了解,借助阿里云,上汽乘用車實現了工程開發仿真能力升級,仿真計算效率提升了25%,使工程開發人員更加專注于產品設計和性能優化,打造出世界級產品的高品質。今年北京車展上全球首秀的概念車MG X-Motion,其量產車的卓越整車...
摘要:核心子進程運行控制。由應用來看,關鍵是錄制屏幕和錄制攝像頭,以及用快捷鍵控制在這兩者之間切換。限制條件是超過三個月快捷鍵失效。實現分兩步安裝時在注冊表特定位置,假如是,寫入目錄相關信息。在程序運行時,檢測當前目錄是否存在于注冊表下。 錄制項目終于做完,不用總是提醒自己抓緊時間這樣來想問題了。在完成之后帶著一些滿足感,回頭看看哪些地方是需要改進的,哪些地方又是有更好的替代方案,自己又有哪...
閱讀 2567·2023-04-25 18:13
閱讀 787·2021-11-22 12:10
閱讀 2980·2021-11-22 11:57
閱讀 2144·2021-11-19 11:26
閱讀 2179·2021-09-22 15:40
閱讀 1469·2021-09-03 10:28
閱讀 2709·2019-08-30 15:53
閱讀 1955·2019-08-30 15:44