在`RANDOM_NUMBER`算法中使用特定种子

时间:2016-10-25 03:10:32

标签: random fortran random-seed

我希望将一组特定的种子用于内在函数hello world(PRNG)。我到目前为止所读到的是种子值可以通过调用RANDOM_NUMBER来设置,特别是RANDOM_SEED。我的困惑是如何(如果可能的话)为算法设置特定值,例如在RANDOM_SEED(GET = array)RANDRANDU算法中,可以指定自己的算法种子直接。我不知道如何设置种子,因为get函数似乎采用了数组。如果它需要一个数组,它是否总是从数组中的特定索引中提取种子值? 基本上,有没有办法设置特定的单个种子值?如果是这样,有人能写出来吗?

作为旁注 - 我试图设置我的种子,因为据称我提到的其他PRNG之一只适用于"大的奇数"据我的教授说,所以我决定在比较PRNG时我也可以控制它。

1 个答案:

答案 0 :(得分:0)

首先,RANDOM_SEED仅用于控制RANDOM_NUMBER()的种子。如果您使用任何其他随机数生成器子例程或函数,它将完全不影响它们,或者如果是,那么您必须在手册中找到某些特定于编译器的方式。但最有可能的是它不会影响他们。

其次,您根本不应该关心种子数组是否包含1,4或42个整数,这无关紧要,因为PRNG以某种未指定的自定义方式使用整个数组中的位。例如,您可能正在生成64位实数,但种子数组由32位整数组成。你不能简单地说种子数组中的哪个整数做什么。 您可以将整个种子数组视为一个大整数,如果需要,可以将其切割成较小的部分。

关于你的教授建议,谁知道他的意思,但种子可能是由特定生成器的某些程序设定的,而不是标准RANDOM_SEED,所以你必须阅读该生成器的文档。 / p>

如何在RANDOM_SEED中使用特定的种子?它在这个网站上被多次描述,jkust在右上角的搜索字段中搜索RANDOM_SEED,真的。但是很简单,一旦你知道了数组的大小,就可以将它的大小调整为你需要的任何非平凡数字(你需要足够的非零位)并使用put=。这就是全部,只要不考虑数组中的单个值,整个数组就是一个数据