生成随机数不重复

生成随机数不重复

问:生成不重复的随机数
  1. 答:本文主要涉及点:常用随机数生成的公式和判断是否重复。
    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()+" ");
    }
    }
    }
问:如何产生不重复随机数
  1. 答:首先需要使用: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函数,所以产生的已经是随机数序列了。
问:excel随机生成范围内数字,不重复
  1. 答:我们生成多个随机的不重复数,可以实现通过随机生成的数字做分组用。
    生成简单的随机数很简单,但是要生成不重复的随机数相对而言会比较麻烦。
    这里从易到难介绍几种解决问题的方法。
    操作方法
    01
    我们这里假定要
    在B列生成20个随机且不重复的数据,然后根据随机计算的结果给A列的姓名进行排序及分组。
    02
    如果我们
    单纯地以RANDBETWEEN函数来做(下图1),生成的数据会有重复数。
    03
    作者给出的对策如下:
    1)在C列建立辅助列,然后输入:=RAND()
    RAND函数的作用是
    生成0到1之间的随机数字,因为是很多位数的小数,所以基本不会出现重复值(或者说概率低到可以忽略不计)。
    辅助列相关知识请参考下方经验:
    04
    如果仍然担心会出现重复值,我们可以
    再使用一个RAND函数与之相乘,进一步降低出现重复值的概率。
    05
    2)在B列使用RANK函数对C列的数据进行排序。
    由于C列的数值没有重复,所以RANK函数排序后的结果也不会发生重复。
    06
    上面的办法是比较简单的办法,我们也可以参考下图函数公式操作,但相对比较麻烦,有兴趣可以研究研究。
    07
    3)RAND函数和RANDBETWEEN函数都可以
    通过按F9键进行数据更新。
生成随机数不重复
下载Doc文档

猜你喜欢