【发布时间】:2015-07-23 21:58:34
【问题描述】:
你能帮我理解这些随机化是什么意思吗?
我在我必须翻译的 c 代码中找到它,它总是返回 41:
int main(){
srand(1);
printf("\n%d",rand());
}
如何在 Java 中模拟 srand(1) 和 rand()?
【问题讨论】:
-
我认为这是因为
srand()应该是一个“随机”数字,通常使用time() -
不,它没有。在我的系统中,它总是产生 1804289383。
-
您对伪随机数生成有多熟悉?
-
System.out.println("41");
-
实际上,这对他一点帮助都没有。如果您想要与 C 代码相同的结果,则必须重新实现相同的 RNG。 Java 的 RNG 是不同的,其他 C 编译器也是如此。但是,我强烈怀疑你真正想要完成的事情是不同的......所以退一步,给我们一个更好的观点:你想要完成什么?