1樓:網友
是這樣的。
c語言中的隨機數應該是應用的隨機數表。
比如寫乙個程式。
printf("%d",rand()%10);
每次執行結果都是一樣的。
如果想產生每次不同的隨機數,就時間關聯來產生隨機數。
這樣只要每次執行時間不同,隨機數就不同。
2樓:好朋友
把程式發給我 我幫你看看 我
c語言:為什麼每次產生的rand隨機數全都一樣?例如第乙個是9,後面全都是
3樓:龍的傳人之凱聖
看了你的程式,有點錯誤;
srand與rand函式前者必須設定發生隨機數種子,如果沒有則rand函不會根據種子發生隨機數;
而你的srand(unsigned)沒設定可以發生可變的隨機數種子;
如srand(unsigned 1)就是乙個產生可變隨機種子數;
4樓:眾裡尋他
你執行了幾遍? **沒問題,多試幾次 還有問題請 截圖(執行的圖)
5樓:網友
把srand 放到for迴圈的外面。
在c語言裡,為什麼rand()每次生成的數都一樣?
6樓:網友
那是因為rand()生成的是偽隨機數。
需要種子來產生不同的隨機數。
如果在預編譯時宣告。
專#include,則可用生成種子的函屬數 srand((unsigned)time(null)) 因為時間值可以看成是乙個隨機的量(即每一時刻都不同),所以就生成了變化的偽隨機數。
7樓:網友
沒有生成隨機數種子,隨機數發生器其實是有規律的,要產生無規律隨機數需要每次用不同的種子數初始化隨機數發生器。
8樓:網友
rand((unsigned)time(null))
你生成的數字一樣,是因為沒有根據它的時間來變化,上面的**就可以了。
9樓:網友
還有乙個初始公函式沒用。
c語言生成隨機數的函式,為什麼迴圈後隨機數都一樣?
10樓:網友
如果srand放在迴圈裡面,開來始迴圈,讀到。
自rand的時候,srand才會被呼叫,但是srand裡面time的時間精度太低,for已經迴圈完了,才播種了一次;如果放在外面,進入主函式的時候,就會開始播種,產生不同的種子,這樣才能迴圈出不同的隨機數。不知道這樣理解對不對?
11樓:給哥爆個
隨機數函式每次都要初始化。
12樓:網友
srand((unsigned)time(0));
只需一次,放在最前面即可。
c語言中的rand()函式,說是產生隨機數的函式,可是為什麼我在使用時產生的隨機數就沒變過呢?
13樓:
rand() 使用的隨機數產生機制,稱為偽隨機數;
所以rand()也叫偽隨機數發生器。
必須初始化乙個真正的隨機一點的資料,得到的才像乙個真正的隨機數。
所以使用它之前,要呼叫srand 函式初始化一下。
一般大家都喜歡用,系統當前時間來初始化它。
#include
srand(time(null));/*或者。
a[i]=rand() / rand_max * n;
或者 a[i]=(double)rand() /( rand_max +1)* n; */
14樓:網友
隨機數函式是不真正的隨機數,所以每次執行會有相同的結果,這個現象要用srand函式來解決,用srand函式初始化隨機數生成器,可以避免生成相同的隨機數。
一般用電腦的時間來進行初始化。
srand((unsigned) time(null));
15樓:龍__鳳
在程式前面加上srand(time(null));保證隨機種子在每次執行程式時都不一樣,rand()得到的數就不一樣了。
16樓:何處可人生
你需要加乙個種子,就是在用rand()之前加上srand(time(null))就好了;這樣要用到標頭檔案;根據執行的系統時間不同了計算隨機數,但其實這個函式並不是真隨機,是偽隨機,
17樓:旋風男孩兒
這是因為在使用rand()隨機函式時之前要獲取隨機種子srand((unsigned)time(null));
18樓:網友
我記得rand()是需要引數的,不同引數導致不同的序列,比如用當前時間作為引數就是乙個不錯的選擇。
為什麼用rand()產生的隨機數每次都相同
19樓:可愛的小傻瓜
你設定的當前時間為隨機數種子,但是兩條**之間相差時間非常短,內所以種子是一樣的,隨容機數也就一樣。
你可以這樣:
srand(1);
magic1=rand()%10+1;
srand(200);
magic2=rnd()%10+1;
怎樣解決rand()函式每次產生隨機數都一樣的問題
20樓:硪丨曖戀
使用rand()函式之前。
可以給隨機數當前時間作為 乙個種子 初始化一下這樣每次生成的就不一樣了。
srand((unsigned(time(null)))
需要標頭檔案 #include
希望對你有幫助~
在c++中用隨機產生數函式rand每次執行程式產生的數都相同,什麼函式可以在每次程式執行時產生不用的數?
21樓:網友
#include
#include
#include //加隨機種子時候一定要加這個標頭檔案using namespace std;
int main()
return 0;}
22樓:網友
設定乙個隨機種子。
srand(unsigned time(null));就可以了。
c語言如何用rand函式產生4個不重複的隨機數啊?
23樓:網友
可以將生成的隨機數放入陣列中,每次遍歷陣列,有相同的重新生成隨機數。知道生成4個即退出迴圈。
#include
#include
#include
int main()
for (int i = 0; i < cnt; i++)// 列印隨機數陣列。
printf("%d ", num[i]);
return 0;}
24樓:匿名使用者
加個判斷就行了,儲存下前面的數,後面的隨機數和前面的所有數比較,不一樣就取,一樣就繼續取餘。再者,取餘的數應該大一些的話,遇到重複的概率就要小很多。如a=rand()%10000;
25樓:匿名使用者
比如可以利用增量不為0的辦法:#include#include
#includeint main()
return 0;}
26樓:匿名使用者
#include //標準工具庫,要用到其中的rand()#include
#include
#include //時間庫,要用到裡面的時間來做隨機數的種子 int main(void)
srand(time(null));
for(i=0; i<4; i++)
printf("");
return 0;}
c語言中random函式怎麼用
random函式 math.random 可以產生出0 1之間的任意小數,例如0.0105901374530933 或0.872525005541986,有幾個其他的函式可以用來改變產生的數字,從而可以更好的在影片中使用 math.round math.ceil math.floor 這幾個函式都是...
用c語言程式設計編寫函式,用冒泡法對主函式中的陣列進行從小到大的排序
樓上的答案加個 define n 5 void sort int a void main sort a 編寫函式用氣泡排序法對陣列中的n個資料進行從小到大的排序。1 新建一個163.php。2 輸入php網頁的結構 3 宣告php與瀏覽器互動的檔案型別和編碼。4 使用 array 函式定義一個 nu...
c語言這個函式怎麼用switch語句來寫
include int main printf y d y c語言,用switch語句寫個選擇選單,case後面怎麼寫函式呼叫?呼叫下面的程式?學過呼叫函式吧,就是那麼呼叫的,當然也可以自己直接寫。舉個例子吧。資料a b,如果我想操作加減乘除,那麼可以這麼寫 include void jiafa i...