一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

C語(yǔ)言

在C語(yǔ)言/C++中如何產(chǎn)生隨機數

時(shí)間:2025-03-18 02:27:37 C語(yǔ)言 我要投稿

在C語(yǔ)言/C++中如何產(chǎn)生隨機數

  C語(yǔ)言功能非常強大、應用廣泛,一旦掌握了后,再自學(xué)其他語(yǔ)言就顯得輕而易舉了。在C語(yǔ)言/C++中如何產(chǎn)生隨機數?下面百分網(wǎng)小編帶大家一起來(lái)看看詳細內容,希望對大家有所幫助!想了解更多相關(guān)信息請持續關(guān)注我們應屆畢業(yè)生考試網(wǎng)!

  C語(yǔ)言/C++怎樣產(chǎn)生隨機數:這里要用到的是rand()函數, srand()函數,和time()函數。

  需要說(shuō)明的是,iostream頭文件中就有srand函數的定義,不需要再額外引入stdlib.h;而使用time()函數需要引入ctime頭文件。

  使用rand()函數獲取一個(gè)隨機數

  如果你只要產(chǎn)生隨機數而不需要設定范圍的話(huà),你只要用rand()就可以了:rand()會(huì )返回一隨機數值, 范圍在0至RAND_MAX 間。RAND_MAX定義在stdlib.h, 其值為2147483647。

  例子1.1:

  復制代碼 代碼如下:

  #include<iostream>

  using namespace std;

  int main()

  {

  for(int i=0;i<10;i++)

  {

  cout<<rand()<<endl;

  }

  }

  結果:

  使用rand()函數獲取一定范圍內的一個(gè)隨機數

  如果想要獲取在一定范圍內的數的話(huà),直接做相應的除法取余即可。

  例子2.1:

  復制代碼 代碼如下:

  #include<iostream>

  using namespace std;

  int main()

  {

  for(int i=0;i<10;i++)

  {

  //產(chǎn)生10以?xún)鹊恼麛?/p>

  cout<<rand()%10<<endl;

  }

  }

  結果:

  我們上面獲取的都是隨機的整數,那么如何獲取小數呢?例如:我們可以先獲得10001以?xún)鹊恼麛担?~10000),然后再用這個(gè)整數除以10000得到小數點(diǎn)后兩位的小數。

  例子2.2:

  復制代碼 代碼如下:

  #include<iostream>

  using namespace std;

  int main()

  {

  for(int i=0;i<10;i++)

  {

  cout<<(rand()%10001)/10000.0<<endl;

  }

  }

  注意10000.0后面的有個(gè)小數點(diǎn),表示結果為浮點(diǎn)數。

  結果:

  使用rand函數和time函數

  我們上面已經(jīng)可以獲取隨機數了,為什么還需要使用time函數呢?我們通過(guò)多次運行發(fā)現,該程序雖然生成了10個(gè)隨機數,但是這個(gè)10個(gè)隨機數是固定的,也就是說(shuō)并不隨著(zhù)時(shí)間的變化而變化。

  這與srand()函數有關(guān)。srand()用來(lái)設置rand()產(chǎn)生隨機數時(shí)的隨機數種子。在調用rand()函數產(chǎn)生隨機數前,必須先利用srand()設好隨機數種子(seed), 如果未設隨機數種子, rand()在調用時(shí)會(huì )自動(dòng)設隨機數種子為1。

  上面的例子就是因為沒(méi)有設置隨機數種子,每次隨機數種子都自動(dòng)設成相同值1 ,進(jìn)而導致rand()所產(chǎn)生的隨機數值都一樣。

  srand()函數定義 : void srand (unsigned int seed);

  通?梢岳胓eypid()或time(0)的返回值來(lái)當做seed

  如果你用time(0)的話(huà),要加入頭文件#include<ctime>

  time(0)或者time(NULL)返回的是系統的時(shí)間(從1970.1.1午夜算起),單位:秒

  例子3.1:

  復制代碼 代碼如下:

  #include <iostream>

  #include <ctime>

  using namespace std;

  void main()

  {

  int a;

  a=time(0);//time(0)返回的是系統的時(shí)間(從1970.1.1午夜算起),單位:秒

  cout<<a<<endl;

  }

  例子3.2:

  復制代碼 代碼如下:

  #include<iostream>

  #include<ctime>

  using namespace std;

  int main()

  {

  srand(time(0));

  for(int i=0;i<10;i++)

  {

  //產(chǎn)生10以?xún)鹊恼麛?/p>

  cout<<rand()%10<<endl;

  }

  }

  這樣做的話(huà),每次運行的結果就都不一樣了。

【在C語(yǔ)言/C++中如何產(chǎn)生隨機數】相關(guān)文章:

C語(yǔ)言/C++中如何產(chǎn)生隨機數09-16

C語(yǔ)言如何產(chǎn)生隨機數11-14

C 語(yǔ)言產(chǎn)生隨機數的方法08-28

C語(yǔ)言產(chǎn)生隨機數的方法08-26

C/C++產(chǎn)生指定范圍和不定范圍隨機數的實(shí)例代碼10-09

如何在C/C++中調用Java08-17

C語(yǔ)言中如何使用隨機數09-21

Java程序如何調用C/C++語(yǔ)言函數10-29

C語(yǔ)言和C++的分別06-18

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看