0
我有下面的代碼使用ISAAC生成隨機數:如何提供種子ISAAC隨機數發生器
int main()
{
/* Initialize the structure to 0 */
randctx ctx;
ctx.randa = ctx.randb = ctx.randc = (ub4)0;
/* Initialize the seed */
for (ub4 i=0; i<256; ++i) {
ctx.randrsl[i] = i;
}
/* Initialize the random numbers from the seed */
randinit(&ctx, TRUE);
printf("%.8lx\n", rand(&ctx));
}
我得到了上面的代碼從How to use ISAAC in C
我也有一個代碼閱讀從/ dev/random獲得種子:
int myFile = open("/dev/random", O_RDONLY);
uint32_t rand;
uint32_t randomNum = read(myFile, &rand, sizeof(rand)) ;
printf(" %u \n", rand);
close(myFile);
如何向ISAAC提供種子即rand?
由於
非常感謝您的回覆!我總是得不到初始化種子。似乎bytes_read等於sizeof(ctx.randrsl)的概率非常低。有什麼辦法可以解決這個問題嗎? – user3266083
@ user3266083它只是從文件讀取字節,這應該只會在不常見的情況下失敗。 'myFile'是否成功打開(應該是> = 0)? – Vasfed
是文件成功打開。而且,僅供參考,我在Linux VM上運行它。 – user3266083