以下print语句将打印"hello world".有人能解释一下吗?
System.out.println(randomString(-229985452) + " " + randomString(-147909649));
Run Code Online (Sandbox Code Playgroud)
而且randomString()看起来是这样的:
public static String randomString(int i)
{
Random ran = new Random(i);
StringBuilder sb = new StringBuilder();
while (true)
{
int k = ran.nextInt(27);
if (k == 0)
break;
sb.append((char)('`' + k));
}
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud) 我读到种子用于初始化随机数生成器.但似乎种子的随机性对于从发电机获得良好的随机性无关紧要.所以我想了解什么是种子呢?为什么这么称呼?最后,为什么计算机系统中的时间用于生成这样的种子?
例如下面的代码.它有一个随机类.然而,它总是在各处产生相同的输出.在这种情况下哪个项目是种子?
来源:链接
import java.util.Random;
public class RandomTest {
public static void main(String[] s) {
Random rnd1 = new Random(42);
Random rnd2 = new Random(42);
System.out.println(rnd1.nextInt(100)+" - "+rnd2.nextInt(100));
System.out.println(rnd1.nextInt()+" - "+rnd2.nextInt());
System.out.println(rnd1.nextDouble()+" - "+rnd2.nextDouble());
System.out.println(rnd1.nextLong()+" - "+rnd2.nextLong());
}
}
Run Code Online (Sandbox Code Playgroud)