国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

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

2020-01-26 14:23:48
字體:
供稿:網(wǎng)友

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 新源县| 闻喜县| 九龙县| 蓬安县| 莆田市| 贡嘎县| 永宁县| 石渠县| 苏尼特左旗| 芜湖市| 九江市| 阿鲁科尔沁旗| 徐水县| 娄烦县| 丹凤县| 穆棱市| 婺源县| 庆阳市| 巫山县| 望奎县| 普定县| 平安县| 宜都市| 漯河市| 中牟县| 扎兰屯市| 灯塔市| 镇原县| 隆德县| 牙克石市| 临潭县| 怀集县| 柳州市| 永昌县| 石门县| 镇沅| 翁牛特旗| 偏关县| 壤塘县| 沭阳县| 通渭县|