rand()函數 返回值是產生一個隨機數,這個返回值雖然是隨機數,但是可能會發現,每回產生的都一樣,比如:
創新互聯公司主要從事成都網站制作、做網站、外貿營銷網站建設、網頁設計、企業做網站、公司建網站等業務。立足成都服務建甌,十年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:13518219792
#include iostream
using namespace std;
void main()
{
for(int i=0;i3;i++){
coutrand()endl;
}
}
運行程序后發現,產生的隨機數,雖然每次運行程序時是隨機數,但是,后來再運行程序,發現與上幾次結果一樣。
這是因為,隨機數的起始值都一樣。
為了產生真正的隨機數,就應該設置隨機數的起始值,這個要利用srand()函數。
將上面程序改為:
#include iostream
using namespace std;
void main()
{
cout"請輸入隨機數的起始值"endl;
int num;
cinnum;
srand(num);
for(int i=0;i3;i++){
coutrand()endl;
}
}
運行程序 就會發現 輸入的起始值不同,產生的隨機數就不同。
當然 也可以產生時間隨機數,這個要用到c語言time.h中的程序,這個可以供你自己思考,自己解決問題,樂趣更多呢~呵呵~
啰嗦這么多 希望對您有所幫助!
Random意思是返回一個0~num-1之間的隨機數。?random(num)是在stdlib.h中的一個宏定義。num和函數返回值都是整型數。
如需要在一個random()序列上生成真正意義的隨機數,在執行其子序列時使用randomSeed()函數預設一個絕對的隨機輸入,例如在一個斷開引腳上的analogRead()函數的返回值。
擴展資料
Random使用之前需要使用Randomize語句進行隨機數種子的初始化。RANDOM產生的是偽隨機數或者說是用一種復雜的方法計算得到的序列值,因此每次運算時需要一個不同的種子值。種子值不同,得到的序列值也不同。因此也就是真正的隨機數了。
RANDOM產生的是偽隨機數或者說是用一種復雜的方法計算得到的序列值,因此每次運算時需要一個不同的種子值。種子值不同,得到的序列值也不同。因此也就是真正的隨機數了。這也正是RANDOMIZE隨機初始化的作用。 VB里用 NEW RANDOM()來表示初始化。
參考資料來源:百度百科-random()
自己產生[x,y] 2維隨機數,用分布函數為權,取用點的個數就可以了。如考慮中心對稱,用極座標[r,sita] 也許更方便。
2維椒鹽噪聲,即產生[x,y,1] 和 [x,y,0], 1 是白點,0是黑點。
計算機的偽隨機數,就是白噪聲,均勻分布。
#include stdlib.h
#include time.h
int main( )
{
int a[100]; /* 存放隨機數的數組 */
time_t t1; /* 用于存放時間 */
time(t1); /* 取得當前系統時間 */
srand(t1); /* 設置隨機數種子 */
for (i = 0; i 100; i ++) /* 循環生成10個隨機數,放到數組a中 */
a[i] = 10 + rand( ) % 90;
/* 數值范圍在10到99間,需要不同范圍的數據請自行更改 */
...
}
隨機函數就是產生數的函數,c語言里有rand(),srand()等函數。
用法
#include
#include
#include
void main( void )
{
int i,k;
srand( (unsigned)time( NULL ) ); //用系統時間當種子,對隨機函數進行初始化
for( i = 0; i 10;i++ )
{
k=rand()%100; //產生各個隨機數
printf( " k=%d/n", k );
}
}
詳述
rand() srand() 頭文件為#include
標準C庫中函數rand()可以生成0~RAND_MAX之間的一個隨機數,其中RAND_MAX 是stdlib.h 中定義的一個整數,它與系統有關。
rand()函數沒有輸入參數,直接通過表達式rand()來引用,rand()%n是產生的隨機數對n取余,起到了取0到n-1之間隨機數的作用;
例如可以用下面的語句來打印兩個隨機數: printf("Random numbers are: %i %i/n",rand(),rand());
因為rand()函數是按指定的順序來產生整數,而未指定運行的種子,所以rand()每次使用的都是同一個種子來產生隨機數序列,因此每次執行上面的語句都打印相同的兩個值,所以說C語言的隨機并不是正真意義上的隨機。
為了時程序在每次執行時都能生成一個新序列的隨機值,我們通常通過為隨機數生成器提供一粒新的隨機種子。函數 srand()(來自stdlib.h)可以為隨機數生成器播散種子。只要種子不同rand()函數就會產生不同的隨機數序列。srand()稱為隨機數生成器的初始化器。
srand( (unsigned)time( NULL ) ); 用系統時間當種子,對隨機函數進行初始化,每次的系統時間不同,所以種子也就不同,產生的隨機數序列也就不同。
文章名稱:隨機噪聲函數c語言 隨機噪聲百科
網頁URL:http://m.kartarina.com/article30/hgjdpo.html
成都網站建設公司_創新互聯,為您提供商城網站、響應式網站、企業網站制作、網站導航、品牌網站設計、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯