亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C語言編程中生成隨機數(shù)的入門教程

2020-05-23 14:12:19
字體:
供稿:網(wǎng)友
這篇文章主要介紹了C語言編程中生成隨機數(shù)的入門教程,包括利用rand()函數(shù)來編寫隨機數(shù)生成器的示例,要的朋友可以參考下
 

語言產(chǎn)生隨機數(shù)是一個常見的編程功能任務(wù),當(dāng)然這個也不難,調(diào)用兩三個函數(shù)就出來了,但是你知道這些函數(shù)具體是起到怎樣的作用,并且是它們是如何產(chǎn)生隨機數(shù)的嗎?

幾個概念

隨機數(shù):數(shù)學(xué)上產(chǎn)生的都是偽隨機數(shù),真正的隨機數(shù)使用物理方法產(chǎn)生的。

隨機數(shù)種子:隨機數(shù)的產(chǎn)生是由算術(shù)規(guī)則產(chǎn)生的,srand(seed)的隨機數(shù)種子不同,rand()的隨機數(shù)值就不同,倘若每次的隨機數(shù)種子一樣,則rand()的值就一樣。所以要產(chǎn)生隨機數(shù),則srand(seed)的隨機數(shù)種子必須也要隨機的。

用srand()產(chǎn)生隨機數(shù)種子

原型:void srand ( unsigned int seed );

作用是設(shè)置好隨機數(shù)種子,為了讓隨機數(shù)種子是隨機的,通常用time(NULL)的值來當(dāng)seed。


time()用于隨機數(shù)種子

函數(shù)原型:time_t time ( time_t * timer );

time()函數(shù)表示返回1970-1-1 00:00:00 到當(dāng)前時間的秒數(shù)。

用的時候這樣:srand(unsigned(time(NULL)));例如產(chǎn)生1~10之間的隨機整數(shù)

#include <stdlib.h>#include <time.h>int main(){  srand(time(NULL));  for(int i=0;i < 10;i++)  {    int randValue=rand()%10;  }}

上面的程序中要注意srand是在for循環(huán)外面的,如果把srand放到for循環(huán)里面,則每次產(chǎn)生的隨機數(shù)都相同。

用rand()產(chǎn)生隨機數(shù)

原型:int rand ( void );

作用是產(chǎn)生一個隨機數(shù),當(dāng)然隨機數(shù)是有范圍的,為0~RAND_MAX之間,隨機數(shù)與隨機數(shù)種子有關(guān)。具體來說是,在產(chǎn)生隨機數(shù) rand()被調(diào)用的時候,它會這樣執(zhí)行:

如果用戶之前調(diào)用過 srand(seed)的話,他會重新調(diào)用一遍 srand(seed)以產(chǎn)生隨機數(shù)種子;
如果發(fā)現(xiàn)沒有調(diào)用過 srand(seed)的話,會自動調(diào)用 srand(1)一次。
如果調(diào)用srand(seed)產(chǎn)生的隨機數(shù)種子是一樣的話(即seed的值相同),rand()產(chǎn)生的隨機數(shù)也相同。
所以,如果希望rand()每次調(diào)用產(chǎn)生的值都不一樣,就需要每次調(diào)用srand(seed)一次,而且seed不能相同。這里就是經(jīng)常采用time(NULL)產(chǎn)生隨機數(shù)種子的原因。

C語言中可以使用rand()函數(shù)來生成一個從0到RAND_MAX的uniform分布?;谶@個函數(shù),我們可以構(gòu)造出一些特定的隨機數(shù)生成器來滿足我們的需求。
(一)0到1的uniform分布:

//generate a random number in the range of [0,1]double uniform_zero_to_one(){  return (double)rand()/RAND_MAX;}

(二)任意實數(shù)區(qū)間的uniform分布:

//generate a random real number in [start,end]double uniform_real(double start,double end){  double rate=(double)rand()/RAND_MAX;  return start+(end-start)*rate;}

(三)任意整數(shù)區(qū)間的uniform分布:

//generate a random integer number in [start,end)int uniform_integer(int start,int end){  int base=rand();  if(base==RAND_MAX)    return uniform_integer(start,end);  int range=end-start;  int remainder=RAND_MAX%range;  int bucket=RAND_MAX/range;  if(base<RAND_MAX-remainder)    return start+base/bucket;  else    return uniform_integer(start,end);}

這個函數(shù)要特別說明一下,平常時候我們都是用rand()%n來生成0到n-1的隨機數(shù),但是按這種方法生成的分布并不是uniform的,另外由于RAND_MAX只有32767,因此要生成比這個數(shù)更大的隨機數(shù)需要另外想辦法,理論上可以直接用0到1的uniform分布直接放縮,但實際效果不好。這里給出一種移位方式的實現(xiàn)。

(四)32bits的隨機數(shù)

//generate a random 32 bits integer number int rand32(){  return ((rand()<<16)+(rand()<<1)+rand()%2);}

有了32bits的隨機數(shù)生成方法,就可以構(gòu)造32bits范圍內(nèi)的隨機整數(shù)區(qū)間了,方法和之前16bits的情況一樣。

(五)32bits范圍內(nèi)的隨機整數(shù)區(qū)間

//generate a random 32bits integer number in [start,end) int uniform_integer_32(int start,int end){   int base=rand32();  if(base==RAND32_MAX)    return uniform_integer_32(start,end);  int range=end-start;  int remainder=RAND32_MAX%range;  int bucket=RAND32_MAX/range;  if(base<RAND32_MAX-remainder)    return start+base/bucket;  else    return uniform_integer_32(start,end);}

這里RAND32_MAX定義為0x7fffffff。

除此之外,利用rand()函數(shù)構(gòu)造任意分布的隨機數(shù)也是個值得探討的問題。

理論上可以通過(0,1)的uniform分布,加上標(biāo)準(zhǔn)采樣方法(sampling)獲得。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
91成人免费视频| 欧美videos巨大粗暴| 在线看污网站| 热三久草你在线| 在线免费一级片| 国产精品视频久久久| 丁香花在线高清完整版视频| 午夜在线不卡| 黄色片中文字幕| 97在线电影| 国产精品一区电影| 久久九九热re6这里有精品| 日韩欧美亚洲视频| 日韩高清三级| 国产一区在线不卡| 国产美女直播视频一区| 中文字幕日韩在线视频| 男同互操gay射视频在线看| 亚洲精品国产电影| 亚洲成人激情在线观看| 热久久免费视频精品| 欧亚成年男女午夜| 久久久久久久久97| 国产精品超碰97尤物18| 2020日本在线视频中文字幕| 国产精品福利在线观看| 中文字幕中文在线| 欧美精品少妇videofree| 日韩电影在线观看永久视频免费网站| 欧美videos另类齐全| 91精品91久久久中77777老牛| 精品国产一区二| 国产精品久久久久不卡| 精品第一国产综合精品aⅴ| 久久av一区二区三| 91资源在线视频| 视频一区二区三区中文字幕| 成人国产免费电影| 欧美有码在线观看| 黄网站app在线观看大全免费视频| 午夜久久99| 免费观看成人在线| 黄色aaa大片| 欧美剧情电影在线观看完整版免费励志电影| 午夜裸体女人视频网站在线观看| gogogo高清免费观看在线视频| 国产精品免费视频xxxx| 97人人在线| 在线观看视频中文字幕| 成人黄色大片网站| 欧美日韩一卡二卡三卡| 99青春婷婷视频| 日本精品入口免费视频| 精品国自产拍在线观看| 香蕉精品999视频一区二区| 国产精品久久久久毛片大屁完整版| 日韩影视一区二区三区| 国产后入清纯学生妹| 中国人xxxxx69免费视频| 亚洲一区二区人妻| 在线观看视频一区二区三区| 人妻视频一区二区| 午夜激情在线观看视频| 五月天婷亚洲天综合网精品偷| 精品伦理一区二区三区| 中文字幕在线网站| 精品国内产的精品视频在线观看| 国产精品多人| 色综合久久综合中文综合网| 女色窝人体色77777| 芬兰videosfree性少妇| 两个人看的在线视频www| c++连点器| 亚洲精品中文在线影院| 中文字幕日韩精品久久| 丁香五月网久久综合| 欧美国产97人人爽人人喊| 国产一级视频在线播放| 亚洲色图校园春色| 欧美无人区码suv| 一二三区在线观看| 最新av免费看| 亚洲国产精品国自产拍久久| 亚洲色成人网站www永久四虎| 变态另类丨国产精品| www.操操操.com| 男人天堂资源网| 3d动漫精品啪啪一区二区下载| 免费在线看一区| 蜜桃av噜噜一区二区三区小说| 国产一区二区色噜噜| 中文字幕 人妻熟女| 九色精品免费永久在线| 日本午夜精品久久久久| 亚洲精品88| 精品国产欧美日韩不卡在线观看| 99在线热播精品免费99热| 精品高清在线| 欧美性xxxxx极品少妇| 久久青青色综合| 亚洲柠檬福利资源导航| 伊人久久在线| 国产综合自拍| 久久福利精品| 亚洲欧美精品一区二区| 久久国产欧美精品| 久久精品性爱视频| www污网站在线观看| 婷婷久久综合九色综合绿巨人| 国精产品一区一区三区视频| 亚洲国产不卡| 亚洲欧美日韩人成在线播放| 欧美日韩免费高清一区色橹橹| 欧美成人在线影院| 伊人影院蕉久影院在线观看| 黄色视屏在线免费观看| 欧美一区二区三区四区在线观看| 在线观看中文字幕2021| 少妇一级淫片免费放中国| 全部孕妇毛片丰满孕妇孕交| 成人av资源网| 午夜激情久久久| dy888夜精品国产专区| 欧美日韩国产一区二区| 一级片在线视频| 亚洲精品影院在线| 欧洲av在线播放| 亚洲第一福利专区| 日本中文在线视频| 国产精品一区二区在线播放| ririsao中文字幕免费| 91视频导航| 成人天堂av| 青青免费在线视频| 欧美性潮喷xxxxx免费视频看| 国产熟女精品视频| 在线观看国产精品网站| 亚洲精品有码在线| 亚洲国产一区二区视频| 92久久精品一区二区| 欧美美女激情18p| 国产啪精品视频| 黄色三级在线| 国产最顶级的黄色片在线免费观看| 影音先锋日韩有码| 国产成人精品免费久久久久| 免费高清视频在线观看| 麻豆免费视频网站入口| 2020国产精品极品色在线观看| 秋霞网一区二区| 婷婷六月激情| 粉嫩aⅴ一区二区三区四区| 久久96国产精品久久99软件| 日韩欧美一级| 日韩一区二区三区四区在线| 欧美日韩精品一区二区天天拍小说| 欧美另类自拍| 日韩成人在线看| 国产精品一区二区x88av| 国产尤物精品| 一区二区三区丝袜| 国产亚洲精品精品精品| 亚洲精品国偷拍自产在线观看蜜桃| 国产精品丝袜xxxxxxx| 精品按摩偷拍| 国产精品久久久久免费| 丝袜老师办公室里做好紧好爽| 日韩久久在线| 人人爽人人爽人人片av| av中文字幕一区二区三区| 另类小说综合欧美亚洲| 性活交片大全免费看| 99欧美精品| 99pao成人国产永久免费视频| 男人的天堂av高清在线| 久久国产精品一区二区| 日本在线不卡一区二区| 久久人体大尺度| www.99com| 91在线国产剧情| av网站中文字幕| 久久精品男人的天堂| 91黄在线观看| 亚洲av毛片基地| y111111国产精品久久久| 欧洲亚洲一区二区| 国产大学生自拍| 欧美午夜电影在线播放| 2023国产精品| 91一区二区三区在线播放| 天堂av在线资源| 亚洲激情影院| 亚洲综合激情另类专区老铁性| 91福利国产成人精品播放| 高端美女服务在线视频播放| 久久精品av麻豆的观看方式| 高清av一区二区三区| 韩国久久久久久| 久久久久99精品一区| 日韩 欧美一区二区三区| 菠萝菠萝蜜在线观看| 超级污的网站| 国产精品偷伦免费视频观看的| 亚洲人精品午夜射精日韩| 韩国三级视频在线观看| 欧美一区二区三区小说| 人人爽人人av| 日韩欧美视频免费在线观看| 欧美日韩国产精品一区二区不卡中文| 亚洲老妇激情| 日韩视频国产视频| 国产不卡一区| 福利影院在线看| 国产精品亚洲美女av网站| 欧美美乳视频| 日韩综合在线视频| 欧美特黄一级大片| 日本亚洲欧洲色α| 精品一区二区三区五区六区七区| 国产麻豆精品久久一二三| 日本亚洲色大成网站www久久| 久久综合九色综合欧美亚洲| 亚洲成人精品一区二区三区| 亚洲福利国产| 日日骚.com| 中文字幕欧美一区| 国产精品欧美日韩| 九九视频在线免费观看| 亚洲激情另类| 久久在线免费观看视频| 国产精品天堂蜜av在线播放| 亚洲久草在线视频| av资源一区二区| 97久久人人超碰caoprom| 福利片一区二区| 日本一区二区三区在线观看视频| 欧美亚洲综合视频| 国产一区二区电影| 黄色18在线观看| 99热在线这里只有精品| 欧美色区777第一页| 欧美性极品xxxx娇小| 久久7799| 国产精品99久久久久久动医院| 日韩女优av电影在线观看| 超薄肉色丝袜足j调教99| 一区二区三区四区欧美| www天堂在线观看| 黄色的视频在线观看| 日韩国产高清视频在线| 欧美一区二区三区四区夜夜大片| 国产亚洲视频在线| 精品网站aaa| 中文在线天堂网| 91中文字幕在线播放| 亚洲精品永久视频| 亚洲美女av在线| 丰满少妇高潮一区二区| 男人用嘴添女人下身免费视频| 亚洲高清视频在线观看| 欧美精品乱码| 中文官网资源新版中文第二页在线观看| 黄色免费福利视频| 亚洲一区在线观看免费| а√最新版地址在线天堂| 久久久久久噜噜噜久久久精品| 国产91精品一区二区麻豆网站| 蜜臀99久久精品久久久久久软件| 国模私拍在线观看| 欧美精品亚洲二区| 国产中文字幕免费观看| 极品人妻一区二区| 四虎电影网址| 夜先锋资源站| 影音先锋日韩有码| 久久青草国产手机看片福利盒子| 首播影院在线观看免费观看电视| 青青草中文字幕| 在线观看 亚洲| 国产二区精品| 欧洲大片精品免费永久看nba| 91精品免费在线| 亚洲色图综合网| av网站免费| 亚洲精品成人三区| 欧美日韩一区二区三区不卡视频| 日韩一级片免费看| 久久综合久久久久88| 国产黄色片免费在线观看| 久久久精品中文字幕麻豆发布| 欧美一级大片在线免费观看| 欧美性生交片4| 国产一区久久精品| 国产精品美女免费看| av观看久久| 成人一区视频| 女人体1963| 91l九色lporny| 午夜精品国产更新| 欧美三级在线| 天天色av.com| 成人在线二区| 婷婷精品进入| 蜜臀久久99精品久久久久久宅男| 国产无遮挡裸体视频在线观看| 91精品国自产在线偷拍蜜桃| 日本色综合中文字幕| 夜夜春很很躁夜夜躁| 亚洲久久久久久久久久久| av手机免费在线观看| 成人综合激情网| 在线免费观看的av网站| 色综合一个色综合| 成人高清免费在线播放| 午夜精品福利影院| 婷婷激情5月天| av av片在线看| aa亚洲婷婷| 一区二区三区四区在线观看国产日韩| 99r精品视频| 免费h网站在线观看| 国产精品私房写真福利视频| 日韩一级免费看| 1314成人网| 亚洲最大的av网站| 日韩激情一区二区三区| h色视频在线观看| 亚洲成色777777女色窝|