相关疑难解决方法(0)

为什么这段代码使用随机字符串打印"hello world"?

以下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)

java string random

1733
推荐指数
14
解决办法
19万
查看次数

与随机数生成算法相关的种子是什么?为什么计算机时间常用于创建此种子?

我读到种子用于初始化随机数生成器.但似乎种子的随机性对于从发电机获得良好的随机性无关紧要.所以我想了解什么是种子呢?为什么这么称呼?最后,为什么计算机系统中的时间用于生成这样的种子?

language-agnostic random

5
推荐指数
1
解决办法
410
查看次数

什么是随机种子?

例如下面的代码.它有一个随机类.然而,它总是在各处产生相同的输出.在这种情况下哪个项目是种子?

来源:链接

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)

java random seed

3
推荐指数
2
解决办法
1万
查看次数

标签 统计

random ×3

java ×2

language-agnostic ×1

seed ×1

string ×1