java模擬微信搶紅包的實例代碼
更新時間:2017年03月13日 10:20:57 作者:NatYang
現(xiàn)在搶紅包的功能很受歡迎,本篇文章主要介紹了java模擬微信搶紅包的實例代碼。具有一定的參考價值,感興趣的小伙伴們可以參考一下。
java簡單模擬微信搶紅包功能,本例發(fā)100元紅包,有10個人搶,為了盡可能的公平,每個人的紅包金額都要隨機(保證結(jié)果的不確定性,本例搶紅包的次序與紅包金額匹配也隨機),就是不能出現(xiàn)部分紅包偏大部分偏小的情況,在區(qū)間0~100上隨機生成9個節(jié)點,加0和100共11個節(jié)點按從小到大排序,各節(jié)點之間的差值就是紅包金額,保證了紅包金額之和等于100。
public static void main(String[] args) { // 發(fā)100元紅包,10人搶 // TODO Auto-generated method stub // 發(fā)紅包總金額100元 double S = 100; // 0-100之間9個節(jié)點,加首尾11個點賦值給數(shù)組a double[] a = new double[11]; // 第一個數(shù)是0 a[0] = 0; // 最后一個數(shù)是100 a[a.length - 1] = S; // 生成9個數(shù)隨機節(jié)點并保留兩位小數(shù) for (int m = 1; m < a.length - 1; m++) { a[m] = Double.valueOf(String.format("%.2f", S * Math.random())); } // 冒泡排序?qū)?個點進行排序 for (int i = 1; i < a.length - 2; i++) { for (int j = 1; j < a.length - 1 - i; j++) { if (a[j] > a[j + 1]) { double temp; temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } //紅包金額賦值給數(shù)組aa double[] aa = new double[a.length - 1]; // 后一項減前一項的差值為紅包金額 for (int n = 0; n < a.length - 1; n++) { double mon = a[n + 1] - a[n]; //用自己的算法實現(xiàn)四舍五入保留兩位小數(shù) int n1 = (int) (mon * 1000); int c = n1 % 10; if (c > 4) mon = (double) ((n1 + 10) / 10) / 100; else mon = (double) (n1 / 10) / 100; aa[n] = mon; } //列表打亂數(shù)組aa中的順序,實現(xiàn)搶紅包的次序與紅包金額匹配隨機 List<Double> list = new ArrayList<>(); for(int i = 0; i < aa.length; i++) { list.add(aa[i]); } Collections.shuffle(list); for(double i:list) System.out.println(i); }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于ChatGPT+SpringBoot實現(xiàn)智能聊天AI機器人接口并上線至服務器的方法
ChatGPT是一款基于自然語言處理技術(shù)的聊天機器人,ChatGPT可以模擬真實的人類對話,并能夠更貼近用戶的需求,提供更有價值的服務,這篇文章主要介紹了基于ChatGPT+SpringBoot實現(xiàn)智能聊天AI機器人接口并上線至服務器,需要的朋友可以參考下2023-02-02IDEA Maven源修改為國內(nèi)阿里云鏡像的正確方式
為了加快 Maven 依賴的下載速度,可以將 Maven 的中央倉庫源修改為國內(nèi)的鏡像,比如阿里云鏡像,以下是如何在 IntelliJ IDEA 中將 Maven 源修改為阿里云鏡像的詳細步驟,感興趣的同學可以參考閱讀一下2024-09-09