Java手册中java.util.Random的描述,随机数产生算法
java.util
类 Random
java.lang.Object
java.util.Random
所有已实现的接口:
Serializable
直接已知子类:
SecureRandom
public class Random
extends Object
implements Serializable
此类的实例用于生成伪随机数流。此类使用 48 位的种子,使用线性同余公式对其进行修改(请参阅 Donald Knuth 的《The Art of Computer Programming, Volume 2
》,第 3.2.1 节)。
如果用相同的种子创建两个 Random
实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。为了保证属性的实现,为类 Random
指定了特定的算法。为了 Java 代码的完全可移植性,Java 实现必须让类 Random
使用此处所示的所有算法。但是允许 Random
类的子类使用其他算法,只要其符合所有方法的常规协定即可。
Random
类所实现的算法使用一个 protected
实用工具方法,每次调用它都可提供最多 32 个伪随机生成的位。
很多应用程序会发现 Math
类中的 random
方法更易于使用。
从以下版本开始:
JDK1.0
另请参见:
Math.random()
,
序列化表格
构造方法摘要
Random
()
创建一个新的随机数生成器。
Random
(long seed)
使用单个 long
种子创建一个新随机数生成器:
public Random(long seed) { setSeed(seed); }
next
方法使用它来保存随机数生成器的状态。
方法摘要
protected int
next
(int bits)
生成下一个伪随机数。
boolean
nextBoolean
()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 boolean
值。
void
nextBytes
(byte[] bytes)
生成随机字节并将其置于用户提供的字节数组中。
double
nextDouble
()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 0.0
和 1.0
之间均匀分布的 double
值。
float
nextFloat
()
&nb
相关文档:
我们为什么要去面试 ? 面试的目的是什么 ?
面试要解决哪几个问题 ?
一、面试的目的
二、面试前的准备
三、面试常见问题解答
A、项目经理常见问题
B ......
使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序.
该方法有6个可访问版本:
1.exec(String command)
2.exec(String command, String envp[], File dir)
3.exec(String cmd, &n ......
最近要改写一个核心加密认证类,从C#改写成Java。
发现在调试时,加密的数据无论如何也对不上。
经过跟踪,发现问题出在C#和Java byte类型的区别上:在C#里 byte类型是无符号的,而Java里是有符号的,所以C#里的129到Java里就成了负数。
发现了问题,解决就比较容易了,针对Java的byte,采用Int来进行存储。
通过如下代 ......
#include <iostream>
using namespace std;
class Base {
public:
virtual void fn(int x) {
cout << "In Base class, int x = " << x << endl;
}
};
class SubClass : public Base {
public:
// 函数的重载,这样的重载方式,在Java中能行,在C/C++中却不行
virt ......
在博客园上看到这样的代码,把它打包成一个exe文件
public class Test
{
public static void main(String[] args)
{
String str="C:\\Program Files\\Tencent\\TM2009\\Bin\\TM.exe";
......