种子数限制大家好
我想知道我们可以在 JMP 中定义的种子是否有上限?我们可以上升到无限或附近吗?
我将大数字连接起来,以便能够在每次它们一起出现时重新创建相同的种子,但是随着这些数字随着时间的推移而增加,种子也会迅速增加。 到目前为止一切都运行良好,但我可能很快就会达到接近 10^12 或 10^13 的值。
感谢您的回答 !
问候
其他回复:种子数量限制这是一个很好的问题,我没有准确的答案。 但我很确定你想坚持使用从 1 到 2147483647 (2^31-1) 的整数。 尝试了一下之后:
s1 = 123559868338560;
s2 = 123456789123456;
randomreset(s1);
print("s1:",randomuniform(),randomuniform(),randomuniform());
randomreset(s2);
print("s2:",randomuniform(),randomuniform(),randomuniform());
print("bits:",hex(s1), hex(s2)); // the two numbers are almost the same, in bits
“s1:”
0.810199321946129
0.909442130941897
0.272601864300668
“s2:”
0.810199321946129
0.909442130941897
0.272601864300668
“位:”
“42DC182183E46000”
“42DC122183E46000”
回复:种子数量限制您可以使用完整的 32 位范围(0 除外),因此您应该从 [1, 4294967295] 中获得不同的种子随机结果。除此之外它会换行,所以请注意 4294967296 换行为 0 并使用随机种子。下边是@Craige_Hales带有种子 2^32+1 和 1 的脚本,以显示这两个种子的随机值相同。
s1 = 4294967297;
s2 = 1;
randomreset(s1);
print("s1:",randomuniform(),randomuniform(),randomuniform());
randomreset(s2);
print("s2:",randomuniform(),randomuniform(),randomuniform());
print("bits:",hex(s1), hex(s2)); // the two numbers are almost the same, in bits
“s1:”
0.883865864481777
0.973821102175861
0.507582586025819
“s2:”
0.883865864481777
0.973821102175861
0.507582586025819
“位:”
“41F0000000100000”
“3FF0000000000000”
回复:种子数量限制谢谢,这很有趣。