最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2013年10月14日 08:40:49   作者:  
這里要用到的是rand()函數(shù), srand()函數(shù),和time()函數(shù)。需要說(shuō)明的是,iostream頭文件中就有srand函數(shù)的定義,不需要再額外引入stdlib.h;而使用time()函數(shù)需要引入ctime頭文件

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

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

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

例子1.1:

復(fù)制代碼 代碼如下:

#include<iostream>
using namespace std;
int main()
{
 for(int i=0;i<10;i++)
 {
  cout<<rand()<<endl;
 }
}

結(jié)果:

使用rand()函數(shù)獲取一定范圍內(nèi)的一個(gè)隨機(jī)數(shù)

如果想要獲取在一定范圍內(nèi)的數(shù)的話,直接做相應(yīng)的除法取余即可。

例子2.1:

復(fù)制代碼 代碼如下:

#include<iostream>
using namespace std;
int main()
{
 for(int i=0;i<10;i++)
 {
  //產(chǎn)生10以內(nèi)的整數(shù)
  cout<<rand()%10<<endl;
 }
}

結(jié)果:

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

例子2.2:

復(fù)制代碼 代碼如下:

#include<iostream>
using namespace std;
int main()
{
 for(int i=0;i<10;i++)
 {
  cout<<(rand()%10001)/10000.0<<endl;
 }
}

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

結(jié)果:

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

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

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

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

通常可以利用geypid()或time(0)的返回值來(lái)當(dāng)做seed

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

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

例子3.1:

復(fù)制代碼 代碼如下:

#include <iostream>
#include <ctime>
using namespace std;

void main()
{
 int a;
 a=time(0);//time(0)返回的是系統(tǒng)的時(shí)間(從1970.1.1午夜算起),單位:秒
 cout<<a<<endl;
}


例子3.2:
復(fù)制代碼 代碼如下:

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
 srand(time(0));
 for(int i=0;i<10;i++)
 {
  //產(chǎn)生10以內(nèi)的整數(shù)
  cout<<rand()%10<<endl;
 }
}

這樣做的話,每次運(yùn)行的結(jié)果就都不一樣了。

相關(guān)文章

  • 淺析C語(yǔ)言中strtol()函數(shù)與strtoul()函數(shù)的用法

    淺析C語(yǔ)言中strtol()函數(shù)與strtoul()函數(shù)的用法

    這篇文章主要介紹了淺析C語(yǔ)言中strtol()函數(shù)與strtoul()函數(shù)的用法,注意其將字符串轉(zhuǎn)換成long型的區(qū)別,需要的朋友可以參考下
    2015-08-08
  • C語(yǔ)言實(shí)現(xiàn)字符串拼接和拷貝

    C語(yǔ)言實(shí)現(xiàn)字符串拼接和拷貝

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)字符串拼接和拷貝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 淺談C語(yǔ)言中strcpy,strcmp,strlen,strcat函數(shù)原型

    淺談C語(yǔ)言中strcpy,strcmp,strlen,strcat函數(shù)原型

    下面小編就為大家?guī)?lái)一篇淺談C語(yǔ)言中strcpy,strcmp,strlen,strcat函數(shù)原型。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • C++實(shí)現(xiàn)LeetCode(104.二叉樹(shù)的最大深度)

    C++實(shí)現(xiàn)LeetCode(104.二叉樹(shù)的最大深度)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(104.二叉樹(shù)的最大深度),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語(yǔ)言怎樣用指針指向字符串

    C語(yǔ)言怎樣用指針指向字符串

    這篇文章主要介紹了C語(yǔ)言怎樣用指針指向字符串問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • c++ signal實(shí)現(xiàn)發(fā)送信號(hào)

    c++ signal實(shí)現(xiàn)發(fā)送信號(hào)

    這篇文章主要為大家詳細(xì)介紹了c++ signal實(shí)現(xiàn)發(fā)送信號(hào)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • C++線程安全的單例模式講解

    C++線程安全的單例模式講解

    今天小編就為大家分享一篇關(guān)于C++線程安全的單例模式講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • C語(yǔ)言文件操作函數(shù)大全(超詳細(xì))

    C語(yǔ)言文件操作函數(shù)大全(超詳細(xì))

    本篇文章是對(duì)C語(yǔ)言中的文件操作函數(shù)進(jìn)行了詳細(xì)的總結(jié)分析,需要的朋友參考下
    2013-05-05
  • 解決C++中事件不響應(yīng)的方法詳解

    解決C++中事件不響應(yīng)的方法詳解

    本篇文章是對(duì)C++事件不響應(yīng)的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++實(shí)現(xiàn)LeetCode(75.顏色排序)

    C++實(shí)現(xiàn)LeetCode(75.顏色排序)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(75.顏色排序),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評(píng)論

会同县| 友谊县| 淅川县| 布尔津县| 宁明县| 白玉县| 万山特区| 康保县| 阜新| 绿春县| 榆树市| 建平县| 阳西县| 车险| 东丽区| 石门县| 花莲市| 来安县| 淅川县| 镇江市| 五大连池市| 读书| 高青县| 荣成市| 钟山县| 太谷县| 独山县| 临泉县| 仙游县| 额济纳旗| 平顺县| 京山县| 海林市| 龙川县| 乌鲁木齐县| 张北县| 峡江县| 澄城县| 东安县| 丹江口市| 天长市|