1樓:溦信
stdlib.h標頭檔案中有巨集#define rand_max 0x7fff
rand()產生一個0到0x7ffff即0到32767之間的隨機數
rand()/(rand_max+1.0)就等於一個0到1之間的小數了,因為rand()最大是32767最小是0,再除以32768就是一個0到1之間的小數(不能等於1),再乘以10就是一個0到10之間的數了(不等於10).最後再加1,就成了一個求1到10之間隨機數的式子了.
srand函式是隨機數發生器的初始化函式,原型:
void srand(unsigned seed);
它需要提供一個種子,如:
srand(1);
直接使用1來初始化種子。
不過常常使用系統時間來初始化,即使用
time函式來獲得系統時間,它的返回值為從 00:00:00 gmt, january 1, 1970
到現在所持續的秒數,然後將time_t型資料轉化為(unsigned)型在傳給srand函式,即:
srand((unsigned) time(&t));
還有一個經常用法,不需要定義time_t型t變數,即:
srand((unsigned) time(null));
直接傳入一個空指標,因為你的程式中往往並不需要經過引數獲得的t資料。
srand((int)getpid());
使用程式的id(getpid())來作為初始化種子,在同一個程式中這個種子是固定的
隨機輸出十個0-100之間的整數
#include
#include
#include
void main( void ) }
rand產生的是偽隨機數,什麼叫偽隨機數?還有rand和srand有什麼區別啊?謝謝了,大神幫忙啊
2樓:青春無悔°擄夔
stdlib.h標頭檔案中有巨集#define rand_max 0x7fff rand()產生一個0到0x7ffff即0到32767之間的隨機數 rand()/(rand_max+1.0)就等於一個0到1之間的小數了,因為rand()最大是32767最小是0,再除以32768就是一個0到1之間的小數(不能等於1),再乘以10就是一個0到10之間的數了(不等於10).
最後再加1,就成了一個求1到10之間隨機數的式子了. srand函式是隨機數發生器的初始化函式,原型: void srand(unsigned seed); 它需要提供一個種子,如:
srand(1); 直接使用1來初始化種子。 不過常常使用系統時間來初始化,即使用 time函式來獲得系統時間,它的返回值為從 00:00:
00 gmt, january 1, 1970 到現在所持續的秒數,然後將time_t型資料轉化為(unsigned)型在傳給srand函式,即還有一個經常用法,不需要定義time_t型t變數,即: srand((unsigned) time(null)); 直接傳入一個空指標,因為你的程式中往往並不需要經過引數獲得的t資料。
srand((int)getpid()); 使用程式的id(getpid())來作為初始化種子,在同一個程式中這個種子是固定的 隨機輸出十個0-100之間的整數 #include #include #include void main( void ) }
求教c語言中rand()和srand()具體用法的區別?另外,rand()是產生0到1之間的隨機數
3樓:匿名使用者
rand()產生一個0~32767之間的偽隨機數。而srand(unsigned t)是為rand()產生偽隨機數下一個「種子」
。所謂「回種子」就是給偽隨機發答生器賦一個初值,因為如果初值一樣,後面產生的偽隨機數的規律也就一樣,達不到「隨機」的目的。所以srand(unsigned t)一般是用機中的實時時間來啟動的,因為實時時間的值每時每刻都在變化,這樣啟動的rand()函式產生的偽隨機數序列就能達到以假亂真的效果
c++裡rand()不是偽隨機數嗎?有什麼辦法能真正隨機的?
4樓:匿名使用者
貌似沒有,這也是目前電腦科學領域亟待研究的問題之一(我看老外書上寫的)。
5樓:匿名使用者
#include
srand(time(0));
rand產生的隨機數是什麼型別
6樓:匿名使用者
函式原型:int rand(void);
所以返回值為int型
返回的隨機數範圍是0~rand_max
7樓:宛丘山人
數值型別,歲語言不同而不同,又多是整形,有的是實型
8樓:
int型別 c語言中的一種下整數型別
9樓:匿名使用者
int or unsigned int
rand產生的是偽隨機數,什麼叫偽隨機數?還有rand和srand有什麼區別啊?
10樓:匿名使用者
rand()%最大+最小
這樣輸入範bai圍產生隨機數,但du是電腦zhi裡的隨機數順dao序已經排列好了,執行程式後你內會發現每次出現容的隨機數都一樣,所以要設定一個隨機數種子,來插入電腦已經排列好的隨機順序,這樣就能解決每次出現一樣資料的問題。 把下面這段程式加到rand()前面就ok了。。。
unsigned seed;
printf("please input seed:");
scanf("%u",&seed);
srand(seed);
c語言用rand產生的是偽隨機數麼
11樓:匿名使用者
#include
#include
void test_rand(void)}
rand產生的隨機數是什麼型別,rand隨機函式產生的值的範圍
函式原型 int rand void 所以返回值為int型 返回的隨機數範圍是0 rand max 數值型別,歲語言不同而不同,又多是整形,有的是實型 int型別 c語言中的一種下整數型別 int or unsigned int rand 隨機函式產生的值的範圍?cplusplus中有這樣的介紹 r...
隨機數是什麼,什麼是隨機數?
隨機數是專門的隨機試驗的結果。產生隨機數有多種不同的方法。這些方法被稱為隨機數發生器。隨機數最重要的特性是 它所產生的後面的那個數與前面的那個數毫無關係。就是隨意的一個數,還有就是範圍,比如1到9之間的隨機數,3就是這個範圍的隨機數,123456789隨機抽取一個,這就叫隨機數 例 一臺電腦,正在0...
隨機數生成的原理和方法,電腦取隨機數是什麼原理,是真正的隨機數嗎
原理太高深,提供方法是 可以的1 在c 中可以的,函式是這樣用,比如0至1的隨機數random ran new random int randkey ran.next 0,1 不過這樣會有重複,可以給random一個系統時間做為引數,以此產生隨機數,就不會重複了 system.random a ne...