• Java产生随机数


            今天学桶排序,因为需要随机产生[0,1)的等长小数,于是随手谷歌之,翻了些资料,与诸君共享……

    一.java.lang.Math

            该类下边有random()方法,产生[0,1)的double值,注意1.0取不到;所以int p = (int)(Math.random()*10) 会产生[0,9]的整数值,没有10。

            补充:Math.round(11.5) = 12,Math.round(-11.5) = -11,其实round函数相当于floor(x+0.5)。ps:这是一道真实的面试题,大公司的。

           PI:Math.PI,自然对数是Math.E,还有log、log10、hypot、floor、ceil,max、min、exp。

    二.若干问题

      如何让Math.random()生成的随机数包括1(不是数字包含1,而是产生1.0)?刚想到先随机Random.nextInt(2)以50%概率分别产生0和1,若是0,就选择Math.random(),否则选择1;不过这样产生1的概率就是50%了。随机选取0-9,a-z,A-Z所有字符组成的一字符数组chararray(生成的时候一个一个写太麻烦,直接nw一个String,然后toCharArray),也可以chararray[Random.nextInt(62)]如何产生的数字包含1(三位数)?先new String("012……9"),先产生两个数字直接用或者当String里的下标取值,然后把1插入就行了。

    三.java.util.Random

            查看API发现有nextInt(int n),nextDouble,nextFloat等,后两者都是返回[0,1),前者返回[0,n)(像C/C++里的rand()函数,返回0到RAND_MAX)。

            则产生[0,10]可以整数可以:

    Random r = new Random(); 
    int p =r.nextInt(10)+1; //这个是[1,10]
    //------------------
    (int)(Math.random()*11)

              更一般地,产生[min,max]的整数:

    int createRandom(int min, int max) {
        Random r = new Random();
        return r.nextInt(max-min+1)+ min;
    }
  • 相关阅读:
    php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
    手机web——自适应网页设计(html/css控制)
    js正则表达式语法
    禁止鼠标右键的代码(转)
    php获取文件名称和扩展名
    php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
    js中cookie的使用详细分析
    fopen中r+和w+的区别
    左右选择框 js插件
    SpringMVC 过滤器Filter使用解析
  • 原文地址:https://www.cnblogs.com/hxsyl/p/3214212.html
Copyright © 2020-2023  润新知