浅析Java中关于随机数Random的一些问题
2018-01-12 22:52
507 查看
Random类
今天在学习Mysql的函数时,看到了RAND(),函数以及带参数的RAND()。就想到了Java中的Random类,之前一直不明白不带参数的Random为什么每次都产生不同的数字,而带了所谓的“种子”参数的每次都会产生相同的值。后来去查阅了资料,得到的结论就是,在计算机系统中,不存在随机数这个说法,不存在的意思就是,计算机不会凭空的产生一串随机的数字来返回给用户,计算机所能做到的就是接受用户的指令然后返回用户所期望的结果。解释一下这句话,就是计算机会接收一个参数,然后根据底层相应的算法产生一个随机数来返回,也就是说,最终的返回结果是经过运算的,而返回的结果是根据传入的参数确定的,在用户不指定“种子”,也就是说不传入参数时,计算机会隐式的传入系统的当前时间作为参数,因为时间每时每刻都在变化,所以我们得到的数字也是随机的,所以这种伪随机数我们也可以成为是一种随机数。最后!!我查看了一下JDK的源码,果不其然。
Random使用一种随机数和系统的当前时间做异或运算来得到随机数,System.nanoTime()是一个以毫微秒为单位的值。这个问题暂时就算搞明白啦!!
相关文章推荐
- 关于Random类产生随机数的一些问题
- 有关于java中的一些容器问题
- 关于我遇到的java中编译没错运行出错的一些问题(不定期更新)
- 关于Java环境变量设置的一些问题
- java中关于位移运算的一些小问题
- .Net中关于Random类产生的随机数相同问题解决
- 关于JAVA的一些问题?
- 关于随机数 遇到的一些问题和解决办法
- java中关于整数的一些操作问题--最大公约数、最小公倍数、质数等
- java中关于基本类型和数组的一些注意问题
- 关于java学习之中遇到的一些问题之:java.util.NoSuchElementException.
- 关于java中文乱码问题一些解决方案和经验
- java 关于大数的一些问题
- java中关于try、catch、finally中一些问题
- ROR I10N问题及关于javaeye论坛的一些闲话
- 基于《关于Java开发不明白的一些问题》,探讨一下Struts1和Struts2
- 关于“JAVA中为什么没有了多继承并出现了接口”这一问题引发的一些思考
- 关于 Java解惑 里的一些问题
- 关于一些设计模式(面试小问题,Java篇)
- 关于Java中的一些问题汇总