生成 一定范围内的随机数

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

(1)       使用java.lang.Math类

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

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

生成100到1000范围内的随机数如下:

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类生产随机数

       */

      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));

      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值