-
這裡使用了 rand() 函式和 srand() 函式,C C++ 中沒有 random(int number) 函式。
如果你只想生成乙個隨機數而不設定範圍,你可以只使用 rand(): rand() 將返回乙個介於 0 和 rand max 之間的隨機值。 Rand Max 定義在,其值為 2147483647。
如果要在一定範圍內隨機生成乙個數字,可以在巨集定義中定義乙個 random(int number) 函式,然後直接在 main() 中呼叫 random() 函式。
3)但是上面兩個例子中生成的隨機數只能是一次性的,如果再執行一次,輸出結果還是會和第一次一樣。這與 srand() 函式有關。 srand() 用於在 rand() 生成隨機數時設定隨機數種子。
在呼叫 rand() 函式生成隨機數之前,必須先使用 srand() 設定隨機數種子,如果沒有設定隨機數種子,rand() 呼叫時會自動將隨機數種子設定為 1。 如果未設定隨機數種子,則隨機數種子每次都會自動設定為相同的值 1,從而產生 rand() 生成的相同隨機值。
srand() 函式定義: void srand (unsigned int seed);
通常你可以使用 geypid() 或 time(0) 的返回值作為種子
如果使用 time(0),請新增標頭包含檔案
-
我也不能使用隨機化。
但你可以改為種子隨機數:srand(time(null)); 您可以生成偽隨機數。
要隨機找到 10 以內的數字,請使用:rand()%10;
-
在 C++ 中生成隨機數可以通過以下方式完成:
srand(time(0));設定隨機數種子。
1+rand()%x;獲取整數 1 和 x 之間的隨機數。
-
計時器和時間在意識形態上都是正確的。 這是因為計時器和時間都可以用作數值和即時種子。
不過,從邏輯上講,時間顯然不是一件好事。
因為 randomize 引數是數值型別,所以如果你傳遞了時間,小時將自動作為種子。
假設現在是 21 點鐘,然後在這 1 小時內隨機化
最後時間都是隨機的
21。也就是說,每 1 小時生成的隨機數序列是相同的。 這顯然不符合“初始化和種子”的目的。
2.是的。 3.是的。 (略。
序列中的下乙個隨機數。 )
4.不。 如果它沒有初始化,假設我們第一次執行程式執行。
rnd*10
rnd*10
rnd*10
rnd*10
rnd*10
rnd*10
輸出為 0,4,5,1,3,2
然後我們第二次執行程式時,我們是執行這 6 個還是返回 0,4,5,1,3,2
初始化後情況並非如此。
是的。 初始化一次就足夠了。
不可能初始化乙個隨機數,而只命中上乙個隨機數
是的,不填寫預設按隨機化
定時器處理。
-
1、randomize
timermsdn 是關於這個的,我用程式除錯,它們都沒有提示錯誤:
rnd[(number)]
number
決定的價值是確定的。
rnd 生成隨機數的方式。
數字小於 0
每次使用。
number
與隨機數種子的結果相同。
數字大於 0
序列中的下乙個隨機數。
number 等於 0
最近幾代的數量。
number
省略序列中的下乙個隨機數。
rnd 函式返回小於 than。
1 但大於或等於。
0. 4、randomize
初始化 RND
當您在迴圈中重複呼叫 rnd 時,如果不進行隨機化初始化,則生成的隨機性不會改變。 例如,在按鈕事件中,如果呼叫 a=rnd,則每次單擊按鈕時 A 可能相同。