c奇怪的使用srand和rand c

时间:2015-07-23 21:58:34

标签: java c random srand

你能帮助我理解这些随机化的含义吗?

我在c代码中找到它,我必须翻译,它总是返回41:

int main(){
  srand(1);
  printf("\n%d",rand());
}

如何在Java中模拟srand(1)和rand()?

1 个答案:

答案 0 :(得分:1)

我的回答是假设您只想模仿srand()和rand()的行为,但不关心你说的总是得到的'41'。

这基本上只是伪随机数生成的想法。如果将种子设置为常量值(在本例中为1),则调用random()函数,它将始终返回相同的值。这是因为它基本上是说“在'随机'数字的大列表中将索引设置为1”,以便下次我调用random时它返回该'list'中的第n个值。实际上,它有点复杂,但这就是我有时想到它的方式。要在Java中模拟代码的行为,可以尝试以下操作:

public static void main(String[] args) {
    Random rand = new Random(1);

    System.out.println(String.valueOf(rand.nextInt()));
}