我正在阅读Math.random()javadoc并看到随机只是伪随机.
是否有一个库(特别是java)根据随机变量生成随机数,如环境温度,CPU温度/电压或类似的东西?
我需要帮助我正在创建的随机数生成器.我的代码如下(在一个名为numbers的类中):
public int random(int i){
Random randnum = new Random();
randnum.setSeed(123456789);
return randnum.nextInt(i);
}
Run Code Online (Sandbox Code Playgroud)
当我从另一个类调用此方法时(为了生成一个随机数),它总是返回相同的数字.例如,如果我这样做:
System.out.println(numbers.random(10));
System.out.print(numbers.random(10));
Run Code Online (Sandbox Code Playgroud)
它总是打印相同的数字,例如5 5.我需要做什么才能打印两个不同的数字,例如5 8
我必须设置种子.
谢谢
Java中的以下简单程序使用java.util.Random该类,以便始终显示"hello world".代码片段如下所示.
package nomain;
import java.util.Random;
final public class J
{
public static String randomString(int seed)
{
Random rand = new Random(seed);
StringBuilder sb = new StringBuilder();
for(int i=0;;i++)
{
int n=rand.nextInt(27);
if (n==0)
{
break;
}
sb.append((char) ('`'+n));
}
return sb.toString();
}
public static void main(String args[])
{
System.out.println(randomString(-229985452)+' '+randomString(-147909649));
}
}
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,它总是显示"hello world",即使使用Random类导致随机数生成,因此每次运行时应更改数字,相应的字符应相应更改,但始终只显示一个稳定的字符串,如上所述"hello world".为什么会这样?