随机产生 指定的个数和指定的总和的数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机产生 指定的个数和指定的总和的数字相关的知识,希望对你有一定的参考价值。

/**
 * 随机生成总数相等的一个数组
 * @author xuxk
 * @time 2016年5月17日 上午10:31:03
 */
public class RandSumQuery {

	public static void main(String[] args) {

		int count = 10;
		int total=300;
		int min=total/count-1;
		System.out.println(min);
		
		int[] result = new int[count];
		result = getRandomAndTotalEq(count, total, min, result);
		System.out.println(result);
		int sum=0;
		for (int i = 0; i < result.length; i++) {
			System.out.println("--:"+i+":"+result[i]);
			sum+=result[i];
		}
		System.out.println("总和:"+(sum));
		
	}
	
	/**
	 * 获取一个随机的总和相等的数组
	 * @param count
	 * @param total
	 * @param min
	 * @return
	 */
	public static int[] getRandomAndTotalEq(int count,int total,int min,int[] result){
		
		int random = 0 ;
		if(count>1){
			int useTotal = total-(count-1)*min;
			random =(int)(Math.random()*(useTotal-1)+1);
		}else{
			random = total;
		}
		result[count-1] = random;
		int surplusTotal = total-random;
		count--;
		if(count>0){
			getRandomAndTotalEq(count,surplusTotal,min,result);
		}
		return result;
	}

}


本文出自 “东方小阁” 博客,请务必保留此出处http://lailai.blog.51cto.com/3362373/1774315

以上是关于随机产生 指定的个数和指定的总和的数字的主要内容,如果未能解决你的问题,请参考以下文章

python 定义一个函数:能产生1-20之间指定的个数的随机数(随机数要求保存到列表中),参数是随机数的个数?

java怎么在几个指定数字里面产生随机数

怎样用java产生一个指定范围的随机数?

rrandom模块随机产生数字

计算指定范围内能整除的个数及总和

在指定数字范围内,随机获取n个不重复数字