Java一個(gè)簡(jiǎn)單的紅包生成算法
一個(gè)簡(jiǎn)單的紅包生成算法,代碼如下:
/** * 紅包 * @param n * @param money 單位:分 * @return **/ public static double[] redPacket(int n, double money) { // 紅包結(jié)果 double[] result = new double[n]; // 隨機(jī)數(shù) double[] randNum = new double[n]; // 隨機(jī)總數(shù) double randSum = 0; // 保證每個(gè)人都分到一分錢(qián),扣除后分配 double redSum = money - n; // 先隨機(jī),生成指定個(gè)數(shù)的隨機(jī)數(shù) for (int i = 0; i < randNum.length; i++) { randNum[i] = Math.random() * redSum; randSum += randNum[i]; } // 重新分配 double left = redSum; // 設(shè)置隨機(jī)紅包結(jié)果 for (int i = 0; i < result.length-1; i++) { // 取整 result[i] = Math.round(randNum[i] / randSum * redSum); left -= result[i]; // 每人至少一分錢(qián) result[i] = (result[i] + 1) * 1.0 / 100; } // 設(shè)置最后一個(gè)紅包 result[n-1] = (left + 1) * 1.0 / 100; return result; }
算法很簡(jiǎn)單,僅供參考,有考慮不到之處,歡迎指正!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- java隨機(jī)數(shù)生產(chǎn)算法實(shí)例
- Java隨機(jī)數(shù)算法原理與實(shí)現(xiàn)方法實(shí)例詳解
- java生成抽樣隨機(jī)數(shù)的多種算法
- 史上最全的java隨機(jī)數(shù)生成算法分享
- Java排序算法之堆排思想及代碼實(shí)現(xiàn)
- Java計(jì)算器核心算法代碼實(shí)現(xiàn)
- Java利用遞歸算法實(shí)現(xiàn)查詢(xún)斐波那契數(shù)
- Java垃圾回收之分代收集算法詳解
- Java垃圾回收之標(biāo)記壓縮算法詳解
- Java實(shí)現(xiàn)獲取指定個(gè)數(shù)的不同隨機(jī)數(shù)
相關(guān)文章
JavaWEB項(xiàng)目之如何配置動(dòng)態(tài)數(shù)據(jù)源
這篇文章主要介紹了JavaWEB項(xiàng)目之如何配置動(dòng)態(tài)數(shù)據(jù)源問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Java位掩碼控制權(quán)限與(&)或(|)非(~)、>的介紹
今天小編就為大家分享一篇關(guān)于Java位掩碼控制權(quán)限與(&)或(|)非(~)、>的介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03Java中Elasticsearch 實(shí)現(xiàn)分頁(yè)方式(三種方式)
Elasticsearch是用Java語(yǔ)言開(kāi)發(fā)的,并作為Apache許可條款下的開(kāi)放源碼發(fā)布,是一種流行的企業(yè)級(jí)搜索引擎,這篇文章主要介紹了Elasticsearch實(shí)現(xiàn)分頁(yè)的3種方式,需要的朋友可以參考下2022-07-07Java實(shí)現(xiàn)鼠標(biāo)拖放功能的方法
這篇文章主要介紹了Java實(shí)現(xiàn)鼠標(biāo)拖放功能的方法,很實(shí)用的功能,需要的朋友可以參考下2014-07-07java中JSONArray互相轉(zhuǎn)換List的實(shí)現(xiàn)
本文主要介紹了java中JSONArray互相轉(zhuǎn)換List的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07java多線(xiàn)程Thread-per-Message模式詳解
本篇文章給大家分享java多線(xiàn)程Thread-per-Message模式的相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的朋友參考學(xué)習(xí)下。2018-05-05如何使用Jenkins編譯并打包SpringCloud微服務(wù)目錄
這篇文章主要介紹了如何使用Jenkins編譯并打包SpringCloud微服務(wù)目錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11