当前位置: 主页 > JAVA语言

java伪随机数生成算法-伪静态在线生成

发布时间:2023-03-30 10:10   浏览次数:次   作者:佚名

伪静态在线生成_java伪随机数生成算法_java水仙花数算法

问:请问用java从1-33个整数中随机抽取6个数字 且不重复 1-16随机抽取一个数,给小球?答:只是难免埋怨时间的手,把相爱写成相爱过,结局的太多错过的问:java 打印六个不重复的随机数。答:sum=(int)(Math.random()*33 + 1) 就是取一个int值 在1-33之间! 第一次的时候 a[0]-a[5] 都是0所以那个for一定不会进! 从第二次开始 a[0]-a[5]就开始有值了, 那么就拿sum值 用for循环 去和a[0]-a[5]依次进行比较, 如果发现有想同的,说明随机数重复了java伪随机数生成算法, 那么这一次寻找就不算数,就要进行i--的操作 同时 将标志值设为0,不入到a[]数组中~ 就这个意思了!答:总体的意思是出来的随机数都放入数组中,如果新出的随机数跟数组中的元素有重复的话就不放入数组中。

因为下面的if(info)等同于if(info=true),只有当info为true的时候才会把新得到的随机数放入数组当中

如果新得到的随机数sum和数组中的元素有重复,那么info就为false,就不会把该数字放入数组当中答:内循环是将当前生成的随机数与数组a中已生成的数字作比较,如果存在相同的数字,则将infor变成false,infor为false时,则不会将当前随机数存到a中。

另外java伪随机数生成算法,你这个算法不能保证最后生成6个的数字。答:sum==a[j],就是判断sum与每一个数组元素是否相等问:java随机生成6位数,要求每次产生的随机数与已生成的随机数不重复,小弟觉得用random产生的数可能重复。答:packagebaidu;

importjava.io.*;

importjava.util.HashSet;

importjava.util.Set;

/**

*

*@authorstcdasqy

*/

publicclassBaidu{

/**

*@paramargsthecommandlinearguments

*/

publicstaticvoidmain(String[]args){

Setm=newHashSet();

for(inti=0;iinta;

do{

a=(int)(Math.random()*1000000);

}while(m.contains(a));

m.add(a);

System.out.println(a);

}

}

}这样就可以了答:有好几种方法,

1 两层循环去重复

2 利用hashset的不重复的特性

3 排除已随机到的数

还有其他的,你可以再搜搜,希望能帮助你

详见