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

VC隨機(jī)函數(shù)srand和rand用法

 更新時(shí)間:2016年11月09日 20:39:11   投稿:mdxy-dxy  
VC中隨機(jī)函數(shù)最常用就是srand和rand(實(shí)際上是屬于標(biāo)準(zhǔn)C函數(shù)),其中srand負(fù)責(zé)設(shè)置隨機(jī)種子,rand則負(fù)責(zé)生成隨機(jī)數(shù)。使用此二隨機(jī)函數(shù)需要包含<stdlib.h>頭文件

前言:編程中經(jīng)常需要用到隨機(jī)數(shù),當(dāng)然程序(函數(shù))本身無(wú)法生成所謂的真實(shí)的隨機(jī)數(shù),還需要一個(gè)隨機(jī)種子,然后根據(jù)既定算法算出一個(gè)確定結(jié)果。如果我們只需要有限次或是隨機(jī)數(shù)時(shí)間要求間隔比較久的,也可直接使用當(dāng)前時(shí)間(時(shí)間戳)作為隨機(jī)數(shù)。既然時(shí)間可以作為隨機(jī)數(shù),那么為什么還需要專門(mén)的隨機(jī)函數(shù)呢?這就涉及到隨機(jī)序列的概率分布問(wèn)題,通過(guò)專門(mén)設(shè)計(jì)的隨機(jī)函數(shù)可以保證連續(xù)隨機(jī)數(shù)序列盡量貼近一均勻合理的概率分布。而不能像開(kāi)彩那樣,領(lǐng)導(dǎo)讓開(kāi)幾就開(kāi)幾,那樣重復(fù)概率太高了。

VC中隨機(jī)函數(shù)最常用就是srand和rand(實(shí)際上是屬于標(biāo)準(zhǔn)C函數(shù)),其中srand負(fù)責(zé)設(shè)置隨機(jī)種子,rand則負(fù)責(zé)生成隨機(jī)數(shù)。使用此二隨機(jī)函數(shù)需要包含<stdlib.h>頭文件。

一、srand和rand函數(shù)

1、srand函數(shù)
srand定義如下:void srand( unsigned int seed );
其中seed為無(wú)符號(hào)整數(shù),我們一般使用時(shí)間戳作為其參數(shù),取得時(shí)間戳,需要包含<time.h>頭文件。應(yīng)用示例參下文。
2、rand函數(shù)
rand()函數(shù)產(chǎn)生一個(gè)介于0~RAND_MAX之間的偽隨機(jī)整數(shù)(short型),RAND_MAX宏定義為0x7fff。如需要更大的隨機(jī)整數(shù),可使用多個(gè)隨機(jī)整數(shù)進(jìn)行組合運(yùn)算即可得到。

二、隨機(jī)數(shù)生成示例

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void main( void )
{
 int i,r;
 srand( (unsigned)time( NULL ) );

 for( i = 0;i < 10;i++ ) {
  r=rand()%10;
  printf( " %3d\n", r);
 }
}

使用注意:
1、rand生成序列對(duì)于給定的srand種子來(lái)說(shuō),序列值組合是固定的
2、srand值在快速調(diào)用時(shí),time(NULL)可能不會(huì)更新,因?yàn)闀r(shí)間戳是以微秒計(jì)算的,所以微秒之內(nèi)的如果再次執(zhí)行srand和rand,則會(huì)得到相同的隨機(jī)值序列
3、每次設(shè)置隨機(jī)種子后,rand輸出會(huì)自動(dòng)復(fù)位到第一個(gè)初始值,種子相同,則初值及后續(xù)的序列相同
示例如下:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int foo() {
	int r;
	srand( (unsigned)time( NULL ) );
	r = rand()%100;
	return r;
}

void main( void ) {
	int i,r;

	srand((unsigned)time(NULL));
	for( i = 0; i < 10;i++ ) {
		r=rand()%100;
		printf( " %3d", r);
	}
	printf("\n");

	for(i=0; i<10;i++) {
		printf( " %3d", foo());
	}
	printf("\n");
}

輸出如下(可注意到第二行輸出完全相同):

76 69 10 95 37 85 25 99 4 33

76 76 76 76 76 76 76 76 76 76

參考資料:

http://msdn.microsoft.com/en-us/library/aa272944(v=vs.60).aspx

http://msdn.microsoft.com/en-us/library/aa272875(v=vs.60).aspx

相關(guān)文章

  • c++ 中vector 常見(jiàn)用法

    c++ 中vector 常見(jiàn)用法

    這篇文章主要給大家分享的是c++ 中vector 常見(jiàn)用法,,vector有兩個(gè)參數(shù),一個(gè)是size,表示當(dāng)前vector容器內(nèi)存儲(chǔ)的元素個(gè)數(shù),一個(gè)是capacity,表示當(dāng)前vector在內(nèi)存中申請(qǐng)的這片區(qū)域所能容納的元素個(gè)數(shù),下面來(lái)看看文章的詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • C語(yǔ)言 解決不用+、-、×、÷數(shù)字運(yùn)算符做加法的實(shí)現(xiàn)方法

    C語(yǔ)言 解決不用+、-、×、÷數(shù)字運(yùn)算符做加法的實(shí)現(xiàn)方法

    本篇文章是對(duì)在C語(yǔ)言中解決不用+、-、×、÷數(shù)字運(yùn)算符做加法的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C指針原理教程之AT&T匯編

    C指針原理教程之AT&T匯編

    AT&T 匯編是一種和intel匯編在語(yǔ)法上完全不同的匯編語(yǔ)言,為避免混淆intel語(yǔ)法,本文只介紹AT&T匯編,AT&T的第一個(gè)特點(diǎn)就是每個(gè)寄存器名前必須加‘%’,立即數(shù)前必須加‘$’
    2019-02-02
  • 詳解C++的模板中typename關(guān)鍵字的用法

    詳解C++的模板中typename關(guān)鍵字的用法

    在C++的Template中我們經(jīng)常可以見(jiàn)到使用typename來(lái)定義類型名稱,更加具體的我們就在接下來(lái)為大家詳解C++的模板中typename關(guān)鍵字的用法,需要的朋友可以參考下:
    2016-06-06
  • C++學(xué)習(xí)小結(jié)之語(yǔ)句

    C++學(xué)習(xí)小結(jié)之語(yǔ)句

    本文給大家匯總介紹了下C++中比較基礎(chǔ)的知識(shí)--語(yǔ)句,常用的語(yǔ)句都有詳細(xì)介紹和附上了相關(guān)示例,十分實(shí)用,有需要的小伙伴可以參考下
    2015-07-07
  • C語(yǔ)言多種獲取字符串長(zhǎng)度的方法

    C語(yǔ)言多種獲取字符串長(zhǎng)度的方法

    這篇文章主要介紹了C語(yǔ)言多種獲取字符串長(zhǎng)度的方法,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 使用C++開(kāi)發(fā)一個(gè)串口讀寫(xiě)軟件的實(shí)現(xiàn)步驟

    使用C++開(kāi)發(fā)一個(gè)串口讀寫(xiě)軟件的實(shí)現(xiàn)步驟

    這篇文章主要介紹了使用xmake(一個(gè)項(xiàng)目管理工具兼包管理工具)和asio2(一個(gè)asio的框架,可以實(shí)現(xiàn)輕松各種網(wǎng)絡(luò)應(yīng)用,一般支持tcp,udp,http,websocket,rpc,ssl,icmp,serial_port.)來(lái)快速的開(kāi)發(fā)個(gè)串口讀寫(xiě)軟件(整合例程),需要的朋友可以參考下
    2025-04-04
  • 樹(shù)存儲(chǔ)結(jié)構(gòu)的幾種表示方法

    樹(shù)存儲(chǔ)結(jié)構(gòu)的幾種表示方法

    今天小編就為大家分享一篇關(guān)于樹(shù)存儲(chǔ)結(jié)構(gòu)的幾種表示方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • C++驗(yàn)證LeetCode包圍區(qū)域的DFS方法

    C++驗(yàn)證LeetCode包圍區(qū)域的DFS方法

    這篇文章主要介紹了C++驗(yàn)證LeetCode包圍區(qū)域的DFS方法,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Visual?Studio?2022編譯C++20代碼

    Visual?Studio?2022編譯C++20代碼

    本文主要介紹了Visual?Studio?2022編譯C++20代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07

最新評(píng)論

武清区| 凌海市| 同仁县| 泰宁县| 平顺县| 竹溪县| 九台市| 汤原县| 历史| 汉川市| 文安县| 崇明县| 谢通门县| 灵川县| 阜宁县| 永和县| 闽侯县| 涪陵区| 乌拉特前旗| 兴文县| 沅江市| 黑水县| 阳信县| 斗六市| 延庆县| 依兰县| 蓝山县| 黎川县| 盈江县| 慈利县| 涞源县| 钟祥市| 托克托县| 中江县| 营口市| 哈密市| 南投县| 五大连池市| 资阳市| 房山区| 龙口市|