1樓:匿名使用者
先看看下面的一段關於rand() 與srand()的講解:
1.在標準的c庫中函式rand()可以生成0~rand_max之間的一個隨機數回,其答中rand_max 是stdlib.h 中定義的一個整數,它與系統有關。
2.rand()函式沒有輸入引數,直接通過表示式rand()來引用;例如可以用下面的語句來列印兩個隨機數:
printf("random numbers are: %i %i\n",rand(),rand());
因為rand()函式是按指定的順序來產生整數,因此每次執行上面的語句都列印相同的兩個值,所以說c語言的隨機並不是真正意義上的隨機,有時候也叫偽隨機數。
3.為了使程式在每次執行時都能生成一個新序列的隨機值,我們通常通過為隨機數生成器提供一粒新的隨機種子。函式 srand()(來自stdlib.
h)可以為隨機數生成器播散種子。只要種子不同rand()函式就會產生不同的隨機數序列。srand()稱為隨機數生成器的初始化器。
所以說在你的第一個例子中那個seed是沒產生作用的。
第二個例子才是一般隨機數生成的使用方法。
誰能結實一下c語言中隨機srand和rand函式的區別
2樓:
rand()產生一個0~32767之間的偽隨機
數。而srand(unsigned t)是為rand()產生偽隨機數
下一個「回種子」。答所謂「種子」就是給偽隨機發生器賦一個初值,因為如果初值一樣,後面產生的偽隨機數的規律也就一樣,達不到「隨機」的目的。所以srand(unsigned t)一般是用機中的實時時間來啟動的,因為實時時間的值每時每刻都在變化,這樣啟動的rand()函式產生的偽隨機數序列就能達到以假亂真的效果。
3樓:匿名使用者
樓上說的比較完善了,我再補充一下。
連續執行若干個rand(),其返回值是同一個隨機數。必須通過srand之後才能產生新的隨機數。
c++問題 rand() 預設產生的隨機數範圍
4樓:匿名使用者
隨機數bai產生的範圍是:0-0x7fff(也就du是0到32767)
#include
#include
#include
#include
using namespace std;
void main()
{ srand( (unsigned)time( null ) ); //時間參zhi數作為種子
for(int i=0;i<32767;i++){ cout<
時間引數種dao子唯一,版然後取的數目不大於權32767個,基本能夠保證產生的隨機數唯一
5樓:匿名使用者
rand()函式可以用來產生隨機數;
rand()會返回一隨機數值,範圍在0至版rand_max 間。返回0至rand_max之間的權隨機數值,rand_max定義在stdlib.h,(其值至少為32767),運算的結果是一個不定的數,要看你定義的變數型別,int整形的話就是32767。
在呼叫此函式產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在呼叫時會自動設隨機數種子為1。一般用for語句來設定種子的個數。
6樓:二十年
0到rand_max,rand_max的值視編譯bai器而定du一般不小於32767,你可以zhi測試dao一下。可以用當前時間做專隨機數的種子保證產生的值不屬同。在程式開始之前呼叫srand((unsigned)time(null));就行了。
c語言如何srand和rand函式產生10個1-100內的隨機數
7樓:幻翼高達
需要準備的材料分別有:電腦、c語言
編譯器。
1、首先,開啟c語言編譯器,新建一個初回始.cpp檔案,例如答:test.cpp。
2、在test.cpp檔案中,輸入c語言**:
for (int i = 0; i < 10; i++)printf("%d ", rand() % 100 +1);
3、編譯器執行test.cpp檔案,此時成功通過rand產生了10個1-100內的整數。
8樓:匿名使用者
先用抄srand函式設定一個
種子,一般為襲當前時間,然後使用bairand函式產生隨機du數zhi
,如產生a~b的隨機數使用表示式rand()%(b-a+1)+a。
注意dao:srand函式在標頭檔案#include 中。
示例**:
#include
#include
#include
int main()
//列印生成的隨機數
for (i = 0; i < 10; ++i)printf ("\n");
return 0;}
9樓:匿名使用者
這就是關於程式設計的一些內容,現在呢科技發達了沒有,今後這個如果不會變成的話,可能連工作都找不到。
10樓:匿名使用者
#include
#include
#include
#define n 10
#define m1 1
#define m2 100
void main()
if(i==n)break;
} printf("\n");}
11樓:
#include "stdio.h"//
#include "stdlib.h"//#include 「time.h」//
void main(void)
12樓:匿名使用者
#include #include
#include
void t_rand() // forprintf("\n");
} // t_rand
void main()
c++編譯中用srand()和rand()%100產生的隨機數為什麼有兩個以上相同的數
13樓:金色潛鳥
rand()%100 是 在 0 到 99 之間復 取隨機 數。
隨機數製為均勻分佈。
當你 取較多 個 數 時,它必然 有 重複。
例如 取 51 個 數 時,有 1 個 重複 的 概率 幾乎為 80-90%。
如果 你再加上什麼 條件,重複 的 概率 可以 提高 或 可以 下降。
這才叫 隨機。
14樓:匿名使用者
rand函式本身有這個bug,在同一秒內取值可能會相同。
C語言用rand產生的是偽隨機數麼
include include void test rand void c語言rand函式產生的最大隨機數是多少?最大32767 2 16 1 系統裡的隨機數是利用初等數論中的同餘定理來實現的.整數rand的原理是 y ax b mod n 其中,n一般是一個很大的素數,幾萬。a也是大素數。而且a,...
怎麼用c 生成指定隨機數,在c 裡怎麼弄隨機數?
include include include using namespace std int main srand unsigned time null 初始化時間種子 int ret rand 3 產生 0 1 2 三種隨機數 int real pow 2,ret 2的0次方 1 2的1次方2 ...
c語言怎樣將產生的隨機數放入一維陣列中
定義一個一維陣列number 然後把取得的隨機數賦值給number c語言如何把rand 產生的隨機數存入陣列 rand 函式是產生隨bai機數的一個隨機函du數。zhi 1 使用dao 專該函式首先應在開屬頭包含標頭檔案stdlib.h include c 建議使用 include,下同 2 在標...