我检查了 stdlib 的文档,它说我们可以使用 unsigned long int 作为 srand() 的种子。问题是:我需要使用最多 40 位数字作为种子。该种子是从用于多变量 CMAC 问题调制的关联矩阵中检索的。
我该如何克服这个问题?例如,请参见下面的代码:
#include <stdlib.h>
int main(int argc, char ** argv)
{
int inputVariable = getStateOfAdressedSpace();
int generatedNumber;
unsigned long long mySeed = getSeedFromMatrix( inputVariable );
srandom( mySeed );
generatedNumber = random( );
}
这是一个非常弱的例子,但那是因为整个代码太大而无法演示,想象一下 mySeed 变量将是一个很长的整数,这就是我的问题所在。如果有人告诉我如何解决这个问题,我将非常感激,甚至可能使用伪随机数生成器 (PRNG) 方法或其他方法。请记住,生成的编号必须是唯一的。