2013-02-12 155 views
2

我正在使用Linux random()函數在CentOS 5.2中生成隨機消息。我想在3次隨機調用後重置種子。換句話說,我希望第一次呼叫和第四次呼叫的輸出相同。有沒有辦法將rand()函數設置爲初始狀態?或者你能知道我可以做的其他功能嗎?linux隨機函數

+0

你在做什麼語言? C? – 2013-02-12 17:28:14

+0

Yeap,我正在使用C. – ykulah 2013-02-12 17:44:59

回答

1

您可以簡單地記住種子,然後使用它來重置。像這樣的東西在C:

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

int main() { 
    int seed = time(NULL); 
    int i; 

    for (i = 0; i < 10; i++) { 
     if (!(i % 3)) { 
      srandom(seed); 
     } 

     printf("%d\n", random()); 
    } 
} 
1

如果你只是想重複三個隨機數,然後存儲在數組中連續三次隨機數和重複你的心內容。

int rand_arr[3]; 
int i; 

srandom(time(NULL)); // Not the best way, but I'm lazy. 

for(i = 0; i < 3; i++) 
{ 
    rand_arr[i] = rand(); 
} 

for(i = 0; i < 10000; i++) 
{ 
    printf("%d\n", rand_arr[i % 3]; 
}