zoukankan      html  css  js  c++  java
  • 第47条:了解和使用类库

    假设希望产生位于0到某个上界之间的随机整数。可能会这样编写:

    private static final Random rnd = new Random();
    static int random(int n){
        return Math.abs(rnd.nextInt()) % n;
    }

    测试随机性:

    public static void main(String[] args) {
        int n = 2 * (Integer.MAX_VALUE / 3);
        int low = 0;
        for(int i=0; i < 1000000; i++)
            if(random(n) < n/2)
                low++;
    }   

    结果接近于666666,由random方法产生的数字有2/3在取值范围的前半部分。

    编写一个随机数生成的方法需要了解关于随机数生成器、数论和2的求补算法的相关知识。

    现有的类库提供随机数生成的方法,不需要自己来做这样的工作,Random.nextInt(int)就实现产生0到某个上界的随机数功能。

    标准的类库经过测试,而且一旦发现缺陷,会在下个版本修正,程序员如果不持续关注,可能连方法实现细节被修改过也不会发现。

  • 相关阅读:
    UEditor 编辑模板
    Task ProgressBar模拟现实完成后显示TextBox
    Java Lambda map返回部分属性
    Socket编程
    字节流和字符流
    File类
    volatile的作用和原理
    Java四种引用类型
    ThreadLocal
    孤儿进程和僵尸进程
  • 原文地址:https://www.cnblogs.com/13jhzeng/p/5759179.html
Copyright © 2011-2022 走看看