設計編程題
發布時間: 2024-12-08 17:51:03
rand()函數是按指定的順序來產生整數,因此每次執行上面的語句都列印相同的兩個值,所以說C語言的隨機並不是真正意義上的隨機,有時候也叫偽隨機數,使用 rand() 生成隨機數之前需要用隨機發生器的初始化函數 srand(unsigned seed)(也位於 stdlib.h 中) 進行偽隨機數序列初始化,seed 又叫隨機種子,通俗講就是,如果每次提供的 seed 是一樣的話,最後每一輪生成的幾個隨機值也都是一樣的,因此叫偽隨機數,所以需要每次提供不同的 seed 達到完全的隨機,我們通常用時間函數 time(NULL) 作為 seed ,因為時間值每秒都不同,這個函數需要包含以下頭文件:
#include <time.h>
1
理論太泛,下面用例子分析理解。
舉例分析
先來理解以下偽隨機數,編譯以下代碼:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(1);
int i;
for (i = 0; i < 10; i++)
printf("%d, ", rand()%11);
}
1
2
3
4
5
6
7
8
9
10
運行結果
8, 9, 9, 1, 7, 5, 5, 10, 1, 0,
熱點內容