package redpacket;
import java.util.Random;
public class RedPacket {
public static void main(String[] args) {
//70个元素平均数为5000的数组;简化为求范围为0-2000的平均数为1000的70个数
int n = 70;
int[] array = new int[n];
int avr = 1000;//平均数
int sum = avr*70;
Random rnd = new Random();
int x = rnd.nextInt(2000);//第一次直接以平均数1000的2倍来取随机数
sum-=x;//剩余和
array[0] = x+4000;
System.out.print(array[0]+",");
for(int i=1;i<array.length-1;i++) {
int a = sum/(array.length-i);//当前剩余平均
if(a<=1000) {
//剩余平均小于等于1000时,范围取0到2*a
x = rnd.nextInt(2*a);
}else if(a>1000){
//剩余平均大于于1000时,范围取(a-1000)*2到2000
x = rnd.nextInt(2000-(a-1000)*2)+(a-1000)*2;
}
sum-=x;
array[i] = x+4000;
System.out.print(array[i]+",");
if(i>1&&(i+1)%10==0) {
System.out.println();
}
}
array[array.length-1]&#
生成一组(70个)平均数固定5000,限制范围4000-6000的随机数,类似简易红包算法,且有范围限制
最新推荐文章于 2024-03-18 22:58:27 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)