随机数怎么生成不重复
2023-01-17阅读(370)
问:生成不重复的随机数
- 答:本文主要涉及点:常用随机数生成的公式和判断是否重复。
1.Math:(数据类型)Math.random()*(最大数-最小数+1)+最小值
2.Random :
Random=new Random();
int randomNumber=random.nextInt(最大值)%(最大值-最小值+1)+1;
3.不重复的随机数
方式一:
方式二:
源码:package test;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class Test4 {
public static void main(String[] args) {
int b=0;int r=0;Listlist=new ArrayList();
int num=(int) ((Math.random()*8)+3);//随机生成n个随机数 《10~3》
for(int i=0;iif(!list.contains(b)){
list.add(b);
System.out.println("第:"+(i+1)+"个随机数是:"+list.get(i));
}else {i--;}
}
System.out.println("循环了"+r+"次");
Iterator it=list.iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
}
}
问:EXCEL RAND()公式 如何避免产生重复的随机数
- 答:工具/材料:Microsoft Office Excel2016版,Excel表格。
1、首先选中Excel表格,双击打开。
2、然后在该界面中,选中要显示随机数的单元格。
3、再者在该界面中,公示框中输入随机数公式“=RAND()”。
4、其次在该界面中,选中单元格右下角,向下拖动。
5、继续在该界面中,选中要用的随机数单元格,右键点击“复制”选项。
6、然后在该界面中,选中第二列,右键点击“粘贴”选项。
7、然后在该界面中,选中要显示不重复的随机数的单元格。
8、再者在该界面中,公示框中输入不重复的随机数公式“=RANK(B1,B$1:B$10)”。
9、其次在该界面中,选中单元格右下角,向下拖动。
10、最后在该界面中,成功显示不产生重复的随机数的单元格。
问:如何产生不重复随机数
- 答:首先需要使用:Randomize[number] 语句,初始化随机数生成器。如果忽略了数值参数number,Randomize自动使用Timer函数的返回值作为新的随机数种子值。然后需要使用Rnd[(number)]函数,生成小于 1 但大于或等于 0 的随机值。为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。例子:Dim MyValueRandomize ' 对随机数生成器做初始化。MyValue = Int((6 * Rnd) + 1) '生成 1 到 6 之间的随机数值。注意:Rnd函数中的参数number决定了生成随机数的方式。若想得到重复的随机数序列,可以不使用Randomize语句,使用负参数值的Rnd函数即。若想得到不重复的随机数序列,必须使用Randomize语句,而且Rnd函数的参数可以大于0或等于0或者省略,或者与Randomize语句中的number相同。实际上,你的程序已经是产生非重复的随机数序列了,只不过下面的代码有点问题:If blnseeded = False ThenRandomizeblnseeded = TrueEnd Ifblnseeded是个未声明的Variant的局部变量,程序每次调用这个函数时,始终满足等于false的条件,所以Randomize始终得到执行,加之你使用了无参的Rnd函数,所以产生的已经是随机数序列了。