JAVA實現(xiàn)紅包分發(fā)的示例代碼
大體思路
如果發(fā)總金額為 m的 n 個紅包,先用一個長度為 n的臨時數(shù)組 a 存放 n個隨機雙精度小數(shù)
,然后用 sum表示數(shù)組 a 的和,每個紅包的金額
代碼
import java.util.Arrays;
import java.util.Random;
import java.math.*;
import java.util.Scanner;
public class Main {
public static long now_time;
public static long seed;
public static int[] get_red_packets(int money, int num) {
Random random = new Random(seed);
seed = random.nextLong();
int[] res = new int[num];
double[] temp=new double[num];
double sum = 0;
int sum2 = 0;
for (int i = 0; i < num; i++) {
temp[i] = random.nextDouble();
sum += temp[i];
}
for (int i = 0; i < num; i++) {
res[i] = 1+ (int)(temp[i] / sum * (money-num));
sum2 += res[i]-1;
}
res[random.nextInt(num)]+=money-sum2-num;
return res;
}
public static void show(int[] red_packet){
System.out.println("紅包 : " + Arrays.toString(red_packet));
}
public static void main(String[] args) {
int num, money;
Scanner scanner = new Scanner(System.in);
now_time = System.currentTimeMillis();
Random init_random = new Random(now_time);
seed = init_random.nextLong();
System.out.println("請輸入要分發(fā)的紅包數(shù)量:");
num = scanner.nextInt();
System.out.println("請輸入要分發(fā)的紅包總金額(分):");
money = scanner.nextInt();
int a[] = get_red_packets(money,num);
show(a);
}
}
到此這篇關(guān)于JAVA實現(xiàn)紅包分發(fā)的示例代碼的文章就介紹到這了,更多相關(guān)JAVA 紅包分發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WIN7系統(tǒng)JavaEE(java)環(huán)境配置教程(一)
這篇文章主要介紹了WIN7系統(tǒng)JavaEE(java+tomcat7+Eclipse)環(huán)境配置教程,本文重點在于java配置,感興趣的小伙伴們可以參考一下2016-06-06
SpringData @Query和@Modifying注解原理解析
這篇文章主要介紹了SpringData @Query和@Modifying注解原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
Java中Base64和File之間互轉(zhuǎn)代碼示例
這篇文章主要給大家介紹了關(guān)于Java中Base64和File之間互轉(zhuǎn)的相關(guān)資料,Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進(jìn)制數(shù)據(jù)的方法,需要的朋友可以參考下2023-08-08
使用ByteArrayOutputStream實現(xiàn)將數(shù)據(jù)寫入本地文件
這篇文章主要介紹了使用ByteArrayOutputStream實現(xiàn)將數(shù)據(jù)寫入本地文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
深入學(xué)習(xí)java內(nèi)存化和函數(shù)式協(xié)同
這篇文章主要介紹了深入學(xué)習(xí)java內(nèi)存化和函數(shù)式協(xié)同,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下2019-06-06

