J2SE基础之Random类的使用
2009-12-17 08:45
162 查看
在学习排序算法的时候用到了java.util.Random类,用来取得一些随机数,通过查看API,发现了许多以前忽略的问题,在这里将用到的知识写一下:
Random.nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。但是此随机数可能会很大,而且会有负数出现。
所以常用Random.nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的double值,然后再用
Int i=(int)(random.nextDouble()*100)
取出一个介于0和100的正整数。
Random类还有一个带参数的构造方法:
Random(long seed) 使用单个long种子创建一个新的随机数生成器。
不知道具体的实现方法,但是当这样使用时,会产生一组固定的随机数。
Math.random()方法可以实现同样的效果,而且API也做出了说明:很多应用程序会发现Math.random()方法更易于使用。
public static double random():
[align=left]返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。 [/align]
[align=left]第一次调用该方法时,它将创建一个新的伪随机数生成器,与以下表达式完全相同 [/align]
[align=left]new java.util.Random[/align]
[align=left]之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其他地方。 [/align]
[align=left]此方法是完全同步的,可允许多个线程使用而不出现错误。但是,如果许多线程需要以极高的速率生成伪随机数,那么这可能会减少每个线程对拥有自己伪随机数生成器的争用。[/align]
Random.nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。但是此随机数可能会很大,而且会有负数出现。
所以常用Random.nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的double值,然后再用
Int i=(int)(random.nextDouble()*100)
取出一个介于0和100的正整数。
Random类还有一个带参数的构造方法:
Random(long seed) 使用单个long种子创建一个新的随机数生成器。
不知道具体的实现方法,但是当这样使用时,会产生一组固定的随机数。
Math.random()方法可以实现同样的效果,而且API也做出了说明:很多应用程序会发现Math.random()方法更易于使用。
public static double random():
[align=left]返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。 [/align]
[align=left]第一次调用该方法时,它将创建一个新的伪随机数生成器,与以下表达式完全相同 [/align]
[align=left]new java.util.Random[/align]
[align=left]之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其他地方。 [/align]
[align=left]此方法是完全同步的,可允许多个线程使用而不出现错误。但是,如果许多线程需要以极高的速率生成伪随机数,那么这可能会减少每个线程对拥有自己伪随机数生成器的争用。[/align]
相关文章推荐
- J2SE基础夯实系列之List中的数据如何根据对象的某一个或多个字段排序引出Comparable和comparator的使用-- Collections与Arrays
- J2SE基础夯实系列之使用Arrays.sort()方法,以及涉及到的Comparable和Comparator
- JavaSE8基础 Random 使用无参构造函数,即默认种子生成随机数
- J2SE基础之Scanner的使用
- java基础_函数Math.random()和Random的使用及区别
- [学习笔记]Java基础_IO(包含对象流序列化使用和RandomAccessFile 类的使用)
- java基础之IO流--使用RandomAccessFile实现数据的分段写入
- J2SE基础夯实系列之List中的数据如何根据对象的某一个或多个字段排序引出Comparable和comparator的使用
- J2SE基础:2.对象的创建与使用
- java 基础 简单正则表达式使用规则、Math类、Random类、System类、BigInteger类、BigDecimal类、Date类、SimpleDateFormat类、Calendar类
- J2SE基础夯实系列之List中的数据如何根据对象的某一个或多个字段排序引出Comparable和comparator的使用
- Java基础之读文件——使用通道随机读取文件(RandomFileRead)
- JavaSE8基础 Random 使用给定的种子产生随机数
- J2SE基础:2.对象的创建与使用
- Java 基础 分别使用Math和Random生成随机数
- java基础 Date,Random,Math的使用
- java基础学习面向对象API中Math类random方法使用 五-5
- J2SE基础夯实系列之使用StackTraceElement封装,打印调试代码!
- python numpy基础(二)random基本使用
- J2SE基础夯实系列之BigInteger使用总结(也是不可变的)