java

时间:2016-11-22 18:36:51

标签: java random

我使用Random类对象生成一组随机数,但生成的随机数集都是不同的,即它们都没有相同的值。 我已经多次运行程序,但每次生成的随机值都不同。即没有一个是相同的。

 int i,j,ex,counter=0;
    int size=7,count=1;
    boolean track=false;
    List<Integer> digits = new ArrayList<Integer>(size);
    for(i=0;i<count;i++)
    {
        track=false;
        Random rn = new Random(i);
        for (j = 0; j < size; j++)
        {
            int k = rn.nextInt(364);
            digits.add(k);
        }


       for (j = 0; j < digits.size(); j++)
        {
          System.out.println(digits.get(j));
        }


        for (int m=0;m<digits.size();m++)
        {
            for (int n=m+1;n<digits.size();n++)
            {
                if (digits.get(m) == digits.get(n))
                {
                    counter++;
                    //System.out.println(counter);
                    track=true;
                    break;
                }

            }
            if(track)
                break;
        }
    }

    System.out.println(100*(double)(counter/count));

}

}

但是在每次新的运行中,一些基于概率的随机数可能相同,但从不(除非大小> 364)我得到相同的随机数。

1 个答案:

答案 0 :(得分:0)

jave中的Random()类在代码中生成从0到364之间的RANDOM编号。 这意味着,在你的代码中,经过365次生成数字之后,只有这样你才能100%确定有2个整数相互匹配,但它不太可能需要365次!

我希望您现在了解随机功能的工作原理吗?

这可能是你的函数的一个可能的输出&#34;数字&#34; 5号:

56 201 78 12 360