java 随机函数
来源:互联网 发布:淘宝手机售后维修 编辑:程序博客网 时间:2024/05/21 04:40
Java中存在着两种Random函数:
一、java.lang.Math.Random;
调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0),返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。在使用Math.Random()的时候需要注意的地方时该函数是返回double类型的值,所以在要赋值给其他类型的变量的时候注意需要进行塑形转换。
二、java.util.Random;
在Java的API帮助文档中,总结了一下对这个Random()函数功能的描述:
1、java.util.Random类中实现的随机算法是伪随机,也就是有规则的随机,所谓有规则的就是在给定种(seed)的区间内随机生成数字;
2、相同种子数的Random对象,相同次数生成的随机数字是完全相同的;
3、Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率均等;
下面Random()的两种构造方法
1.Random():创建一个新的随机数生成器。
2.Random(long seed):使用单个 long 种子创建一个新的随机数生成器。
我们可以在构造Random对象的时候指定种子,如:
最后再来简单对比一下这两个随机函数到底的特点:
1.java.Math.Random()实际是在内部调用java.util.Random()的,它有一个致命的弱点,它和系统时间有关,也就是说相隔时间很短的两个random比如:
一、java.lang.Math.Random;
调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0),返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。在使用Math.Random()的时候需要注意的地方时该函数是返回double类型的值,所以在要赋值给其他类型的变量的时候注意需要进行塑形转换。
二、java.util.Random;
在Java的API帮助文档中,总结了一下对这个Random()函数功能的描述:
1、java.util.Random类中实现的随机算法是伪随机,也就是有规则的随机,所谓有规则的就是在给定种(seed)的区间内随机生成数字;
2、相同种子数的Random对象,相同次数生成的随机数字是完全相同的;
3、Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率均等;
下面Random()的两种构造方法
1.Random():创建一个新的随机数生成器。
2.Random(long seed):使用单个 long 种子创建一个新的随机数生成器。
我们可以在构造Random对象的时候指定种子,如:
Random r1 = new Random(20);或者默认当前系统时间对应的相对时间有关的数字作为种子数:
Random r1 = new Random();需要说明的是:你在创建一个Random对象的时候可以给定任意一个合法的种子数,种子数只是随机算法的起源数字,和生成的随机数的区间没有任何关系。如下面的Java代码:
Random rand =new Random(25);int i;i=rand.nextInt(100);初始化时25并没有起直接作用(注意:不是没有起作用),rand.nextInt(100);中的100是随机数的上限,产生的随机数为0-100的整数,不包括100。
最后再来简单对比一下这两个随机函数到底的特点:
1.java.Math.Random()实际是在内部调用java.util.Random()的,它有一个致命的弱点,它和系统时间有关,也就是说相隔时间很短的两个random比如:
double a = Math.random();double b = Math.random();即有可能会得到两个一模一样的double。
2.java.util.Random()在调用的时候可以实现和java.Math.Random()一样的功能,而且他具有很多的调用方法,相对来说比较灵活。所以从总体来看,使用java.util.Random()会相对来说比较灵活一些。
转载自:http://www.strutshome.com/index.php/archives/759
0 0
- java随机函数
- java 随机函数
- java 随机函数比较
- Java随机函数
- java随机函数用法Random
- java随机函数用法Random
- java随机函数用法Random
- java随机函数用法Random
- JAVA 函数 随机生成经纬度
- java获取指定范围的随机函数
- java中随机函数的使用
- 随机函数的使用--Java基础022
- 随机函数
- 随机函数
- 随机函数
- 随机函数
- 随机函数
- 随机函数
- 利用穷举法和函数(用到标记flag)求出100--150之间的素数以及用标记求出100之内的素数
- 排序算法review<2>--Shell 排序
- Sublime text 3快捷键大全
- 利用移位算法求前40位的斐波那契数列
- 想成为嵌入式程序员应知道的0x10个基本问题
- java 随机函数
- UVA 11020(Efficient Solutions-multiset的lower_bound)
- hdu 4850 Wow! Such String! 2014西安全国邀请赛
- nyoj1058部分和问题
- ios8 百度地图 定位不到问题
- 插入排序的时间复杂度分析
- 时间纪元
- 学会这些你就可以做PM了 程序员也应该了解UI知识
- 【android】Activity、Task、应用和进程