<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            C語言

            在C語言/C++中如何產生隨機數

            時間:2025-03-18 02:27:37 C語言 我要投稿

            在C語言/C++中如何產生隨機數

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

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

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

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

              如果你只要產生隨機數而不需要設定范圍的話,你只要用rand()就可以了:rand()會返回一隨機數值, 范圍在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()函數獲取一定范圍內的一個隨機數

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

              例子2.1:

              復制代碼 代碼如下:

              #include<iostream>

              using namespace std;

              int main()

              {

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

              {

              //產生10以內的整數

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

              }

              }

              結果:

              我們上面獲取的都是隨機的整數,那么如何獲取小數呢?例如:我們可以先獲得10001以內的整數(0~10000),然后再用這個整數除以10000得到小數點后兩位的小數。

              例子2.2:

              復制代碼 代碼如下:

              #include<iostream>

              using namespace std;

              int main()

              {

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

              {

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

              }

              }

              注意10000.0后面的有個小數點,表示結果為浮點數。

              結果:

              使用rand函數和time函數

              我們上面已經可以獲取隨機數了,為什么還需要使用time函數呢?我們通過多次運行發現,該程序雖然生成了10個隨機數,但是這個10個隨機數是固定的,也就是說并不隨著時間的變化而變化。

              這與srand()函數有關。srand()用來設置rand()產生隨機數時的隨機數種子。在調用rand()函數產生隨機數前,必須先利用srand()設好隨機數種子(seed), 如果未設隨機數種子, rand()在調用時會自動設隨機數種子為1。

              上面的例子就是因為沒有設置隨機數種子,每次隨機數種子都自動設成相同值1 ,進而導致rand()所產生的隨機數值都一樣。

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

              通常可以利用geypid()或time(0)的返回值來當做seed

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

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

              例子3.1:

              復制代碼 代碼如下:

              #include <iostream>

              #include <ctime>

              using namespace std;

              void main()

              {

              int a;

              a=time(0);//time(0)返回的是系統的時間(從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++)

              {

              //產生10以內的整數

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

              }

              }

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

            【在C語言/C++中如何產生隨機數】相關文章:

            C語言/C++中如何產生隨機數09-16

            C語言如何產生隨機數11-14

            C 語言產生隨機數的方法08-28

            C語言產生隨機數的方法08-26

            C/C++產生指定范圍和不定范圍隨機數的實例代碼10-09

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

            C語言中如何使用隨機數09-21

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

            C語言和C++的分別06-18

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院