科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道产生随机数方法不能乱用

产生随机数方法不能乱用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

     如果你希望产生0到某个上界的随机数。

作者:中国IT实验室 来源:中国IT实验室 2007年9月25日

关键字: 编程 java

  • 评论
  • 分享微博
  • 分享邮件

  
  如果你希望产生0到某个上界的随机数。许多人会这么写
  Random rnd = new Random();
  public int random(int n){
  return Math.abs(rnd.nextInt()) % n;
  }
  请注意,这是错误的,或者至少是不严谨的。
  这么写有个错误。有可能得到指定范围以外的数,当nextInt()返回Integer.MIN_VALUE时,
  abs(nextInt())也返回Integer.MIN_VALUE,然后如果n不是2的乘方,呵呵,负数出现了。
  建议使用Random.nextInt(int)这个方法,这是经过修正的。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件