生成一组(70个)平均数固定5000,限制范围4000-6000的随机数,类似简易红包算法,且有范围限制

该博客介绍了如何使用Java实现一个简易红包算法,生成70个平均数为5000的随机数,每个数限制在4000-6000之间。通过调整随机数范围,确保了在分配过程中剩余平均数的合理性,保证了最后一个数不会超出范围。
摘要由CSDN通过智能技术生成
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]&#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值