1樓:誰把誓言換流年
例如:#include
int i;
i=rand()%10;
就是取0到10(不包括10)之間的隨機數
2樓:管罡
hutuchong580
具體**如下:
#include
#include
#include //用到了time函式
int main()
return 0;
}有以下幾種情況:
(1) 如果只要產生隨機數而不需要設定範圍的話,你只要用rand()就可以了:rand()會返回一隨機數值, 範圍在0至rand_max 間。rand_max定義在stdlib.
h, 其值為2147483647。
(2) 如果你要隨機生成一個在一定範圍的數,你可以在巨集定義中定義一個random(int number)函式,然後在main()裡面直接呼叫random()函式:
例如:rand()%100是產生0-99的隨機數。01
3樓:go陌小潔
具體**如下:
#include
#include
#include //用到了time函式
int main()
return 0;
}有以下幾種情況:
(1) 如果只要產生隨機數而不需要設定範圍的話,你只要用rand()就可以了:rand()會返回一隨機數值, 範圍在0至rand_max 間。rand_max定義在stdlib.
h, 其值為2147483647。
(2) 如果你要隨機生成一個在一定範圍的數,你可以在巨集定義中定義一個random(int number)函式,然後在main()裡面直接呼叫random()函式:
例如:rand()%100是產生0-99的隨機數。
c語言中獲得隨機數的方法
4樓:匿名使用者
c語言/c++怎樣產生隨機數:這裡要用到的是rand()函式, srand()函式,c語言/c++裡沒有自帶的random(int number)函式。
(1) 如果你只要產生隨機數而不需要設定範圍的話,你只要用rand()就可以了:rand()會返回一隨機數值, 範圍在0至rand_max 間。rand_max定義在stdlib.
h, 其值為2147483647。
例如:#include
#include
void main()
(2) 如果你要隨機生成一個在一定範圍的數,你可以在巨集定義中定義一個random(int number)函式,然後在main()裡面直接呼叫random()函式:例如:隨機生成10個0~100的數:
#include
#include
#define random(x) (rand()%x)
void main()
(3)但是上面兩個例子所生成的隨機數都只能是一次性的,如果你第二次執行的時候輸出結果仍和第一次一樣。這與srand()函式有關。srand()用來設定rand()產生隨機數時的隨機數種子。
在呼叫rand()函式產生隨機數前,必須先利用srand()設好隨機數種子(seed), 如果未設隨機數種子, rand()在呼叫時會自動設隨機數種子為1。上面的兩個例子就是因為沒有設定隨機數種子,每次隨機數種子都自動設成相同值1 ,進而導致rand()所產生的隨機數值都一樣。srand()函式定義 :
void srand (unsigned int seed);
通常可以利用geypid()或time(0)的返回值來當做seed
如果你用time(0)的話,要加入標頭檔案#include例如:
#include
#include
#include
#define random(x) (rand()%x)
void main()
這樣兩次執行的結果就會不一樣了!!
5樓:
問題1: 怎樣獲得一個真正的隨機數?要知道,rand()是不能產生真正的隨機數的!即使不能產生真正的隨機數,也要大概接近呀!而rand()好象每次的隨機都一樣。
專家解答:
之所以rand()每次的隨機數都一樣是因為rand()函式使用不正確。各種程式語言返回的隨機數(確切地說是偽隨機數)實際上都是根據遞推公式計算的一組數值,當序列足夠長,這組數值近似滿足均勻分佈。如果計算偽隨機序列的初始數值(稱為種子)相同,則計算出來的偽隨機序列就是完全相同的。
這個特性被有的軟體利用於加密和解密。加密時,可以用某個種子數生成一個偽隨機序列並對資料進行處理;解密時,再利用種子數生成一個偽隨機序列並對加密資料進行還原。這樣,對於不知道種子數的人要想解密就需要多費些事了。
當然,這種完全相同的序列對於你來說是非常糟糕的。要解決這個問題,需要在每次產生隨機序列前,先指定不同的種子,這樣計算出來的隨機序列就不會完全相同了。你可以在呼叫rand()函式之前呼叫srand( (unsigned)time( null ) ),這樣以time函式值(即當前時間)作為種子數,因為兩次呼叫rand函式的時間通常是不同的,這樣就可以保證隨機性了。
你也可以使用srand函式來人為指定種子數。windows 9x/nt的遊戲freecell就允許使用者指定種子數,這樣使用者如果一次遊戲沒有成功,下次還可以以同樣的發牌結果再玩一次。
問題2: 我按照上述方法並不能產生隨機數,僅產生公差為3或4的等差數列:
#include
#include
#include
#include
void main() }
專家解答:
你的程式是有問題的,你每產生一個隨機數之前,都呼叫一次srand,而由於計算機執行很快,所以你每次用time得到的時間都是一樣的(time的時間精度較低,只有55ms)。這樣相當於使用同一個種子產生隨機序列,所以產生的隨機數總是相同的。你應該把srand放在迴圈外:
srand( (unsigned)time( null ) );
for(int i=0;i<100000;i++)
6樓:風若遠去何人留
可以使用庫函式rand()。
rand宣告於stdlib.h,其原型為
int rand(void);
功能為返回一個隨機整型值。在c語言中,該值是一個正數值。
在需要限定獲取到的隨機數範圍時,如範圍要求為[m,n] m rand()%(n-m+1)+m 的形式進行獲取。原理為: %為取餘計算,當%k時,結果是[0,k-1]之間的數值; 於是rand()%(n-m+1) ∈ [0, n-m]; 所以rand()%(n-m+1)+m ∈ [0+m, n-m+m]=[m,n]。 7樓:匿名使用者 用隨機數函式要區分程式設計環境。tc和vc(vc代表win32編譯器)是不同的。tc下用以下兩個函式初始化隨機數產生器void randomize(void)產生隨機數(max表示 產生從0~max-1的隨機數) int random(int max)例子:int main()vc下也有兩個函式 srand(unsigned long seed) 用於初始化隨機數,引數為隨機數種子,一般使用當前時間作為隨機數種子。 unsigned long rand(void)返回一個隨機數,範圍可用取餘運算控制。 例子:#include int main() 8樓:匿名使用者 在vc中設計到隨機數有兩個函式 srand() and rand() srand() 的作用是是一個種子,提供每次獲得隨機數的基數而已,rand()根據種子而產生隨機數 注意1:srand() 裡的值必須是動態變化的,否則得到的隨機數就是一個固定數 2:其實可以不用寫srand() ,只用rand()就可以了,省事,簡單,例子如下 如果我們想得到一個 0-60的隨機數那麼可以寫成int i; i=rand()%60; 就可以了。 當然最好有個統一的標註如下: int i; srand((unsigned)time( null )); i=rand()%60; 這樣就ok了。 9樓:仙桖珍 c語言生成隨機數需要用到兩個函式,一個是srand(),一個是rand(),首先給srand()提供一個種子,unsigned int型別,其取值範圍從0~65535,srand()根據這個種子會由一個特定的公式生成一個隨機數序列;然後呼叫rand(),它會依次從這個序列中返回一個數(在0到32767之間),而在不指定srand()種子的情況下,它每次都使用預設的種子,因此生成的序列是同一個,你每次執行,當然就取到相同的數字了。 你可以在程式裡新增標頭檔案time.h,用當前時間作為srand的種子,這樣就能保證每次執行時都能取到不同的隨機數序列。如下: time_t t; srand((unsigned) time(&t)); 然後就可以用rand()取隨機數了。 c語言如何srand和rand函式產生10個1-100內的隨機數 10樓:幻翼高達 需要準備的材料分別有:電腦、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內的整數。 11樓:匿名使用者 先用抄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;} 12樓:匿名使用者 這就是關於程式設計的一些內容,現在呢科技發達了沒有,今後這個如果不會變成的話,可能連工作都找不到。 13樓:匿名使用者 #include #include #include #define n 10 #define m1 1 #define m2 100 void main() if(i==n)break; } printf("\n");} random rd new random int i rd.next 0,9 0,9是隨機數範圍,自己定義 你這個問題是不是random生成的隨機數都是一樣的?如果是這個問題 你可以將random的物件設成全域性靜態變數,就是加個static修飾符。然後在函式中呼叫物件的randnext方法即可生成... 韌勁 1.基本函式 在c語言中取隨機數所需要的函式是 int rand void void srand unsigned int n rand 函式和srand 函式被宣告在標頭檔案stdlib.h中,所以要使用這兩個函式必須包含該標頭檔案 include 2.使用方法 rand 函式返回0到ran... 簡淨軒語 可以使用rand函式生成隨機序號,然後再按照隨機序號分組。在想要分組的資料旁邊使用輔助列,列標題為隨機序號,並輸入公式 round rand 10 1 1,這樣每一條記錄都有一個隨機序號,然後再通過篩選或者資料透視表的方法實現分組。需要提醒的是,rand函式為隨機數,按下f9會重新整理資料...c中怎樣用Random求是個不同的隨機數
c語言中取隨機數的函式,C語言中取隨機數的函式
怎樣用ecel軟體做隨機分組,怎樣用excel軟體做隨機分組