淘先锋技术网

首页 1 2 3 4 5 6 7

要获得一个随机数,有以下几种方法:

(1)       使用java.lang.Math

Double ran=Math.random();  这样就生成了一个0—1范围内的double随机数,要生成其它范围内的随机数,需要对其进行缩放,如生成01000范围内的随机数 的代码如下:

Int myrandom=1000*(Math.random());

生成1001000范围内的随机数如下:

Int myrandom=100+(1000-100)(Math.random());需要注意的是double型数值转换为int时,小数部分被直接去掉,因此得到的随机数的均匀性收到一定影响。

2)使用java.util.Random

这个类提供了丰富的生成随机数的方法。该类通过为其设置随机数发生器的种子来产生随机数序列。如果不给他提供种子,他就用当前时间作为种子。

他的一些方法如下:

nextBoolean:随即产生一个布尔值

nextInt 随即产生一个int

nextLong 随即产生一个Long

nextFloat 随即产生一个Float

nextDouble随即产生一个double

nextBytes 随即产生一个字节填充字节数数组

setSeed()方法设置随即原的种子

例子如下:

      Random ran=new Random();

      ran.setSeed(125698233);

      for(int i=0;i<5;i++)

      {

         System.out.println(ran.nextBoolean());

      }

      System.out.println();

      for(int i=0;i<5;i++)

      {

         System.out.println(ran.nextInt(100));//随即生产一个0100之内的数

      }

      System.out.println();

      for(int i=0;i<5;i++)

      {

         System.out.println(ran.nextFloat());

      }

      System.out.println();

      for(int i=0;i<5;i++)

      {

         System.out.println(ran.nextDouble());

      }

      System.out.println();

      for(int i=0;i<5;i++)

      {

         System.out.println(ran.nextLong());

      }

     

3)使用java.security.SecureRandom

SecureRandom继承了Random类,它能生成密码强度的随机数。该类能产生真正的随机数,而不是伪随机数。可以用长整数值或字节数组设置内部种子。如果不提供种子,SecureRandom实例将调用自行设置种子的方法来生成真正的随机数。

使用如下:

SecureRandom s=new SecureRandom();

      for(int i=0;i<5;i++)

      {

         System.out.println(s.nextInt(100));

      }