java生成三位随机数_java生成和为指定数的6个随机数工具类

/**

* 生成和为指定数的6个随机数

* 比如和为100 ,如果生成的这个随机数加起来等于100,则打印这6个数。

* 数据类型int

*/

public static void unequal() {

int max=100; //最大为100

int min=1; //最小为10

int num=6; //一共有6个数

int range; //每个数可取值范围

int remain_num; //还剩几个数

int sum=0; //已得数的总和

int[] r=new int[num];

for(int i=0;i

if(i==num-1){

r[i]=max-sum; //最后一个数=最大数-已得数的总和

}

else{

remain_num=num-1-i; //还剩几个数,如循环到第一个数时,i为0,remain_num=3

range=max-sum-min*remain_num; //第一个数的取值范围为1~70

if(range>0){

Random rr =new Random();

r[i]=rr.nextInt(range-min+1)+min;

sum=sum+r[i];

}

}

}

for (int i : r) {

System.out.println(i);

}

}

/**

* 生成和为指定数的6个随机数

* 比如和为100 ,如果生成的这个随机数加起来等于100,则打印这6个数。

* 数据类型double

*/

public static void unequals() {

double sum1=0;

double max=100; //最大为100

double min=0.01; //最小为10

int num=6; //一共有6个数

double range; //每个数可取值范围

int remain_num; //还剩几个数

double sum=0; //已得数的总和

double[] r=new double[num];

for(int i=0;i

if(i==num-1){

r[i]=max-sum; //最后一个数=最大数-已得数的总和

}

else{

remain_num=num-1-i; //还剩几个数,如循环到第一个数时,i为0,remain_num=3

range=max-sum-min*remain_num; //第一个数的取值范围为1~70

if(range>0){

Random rr =new Random();

r[i]=rr.nextDouble()*(range-min+0.01)+min;

sum=sum+r[i];

}

}

}

for (double i : r) {

System.out.println(i);

sum1+=i;

}

System.out.println("总和"+sum1);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值