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

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

C++學習記錄6--srand(time(NULL)產(chǎn)生隨機數(shù)

2019-11-06 06:34:11
字體:
供稿:網(wǎng)友
time() 函數(shù):返回從1970/1/1 00:00:00到調(diào)用time()函數(shù)時所經(jīng)過的時間,以秒為單位,所以是個整數(shù)。time(NULL)或time(0)表示在內(nèi)存中不存儲返回的數(shù)值。頭文件:#include<time.h>rand() 函數(shù):調(diào)用一次隨機產(chǎn)生0-32767間的整形數(shù)。頭文件:#include<stdlib.h>srand() 函數(shù):定義rand()函數(shù)中seed的值。   C++中使用rand()函數(shù)隨機。然而,rand()產(chǎn)生的并不是真正隨機數(shù),而是偽隨機數(shù),其本質(zhì)是一個周期無限長的數(shù)列,每次調(diào)用rand(),就從該數(shù)列中某個位置開始取值。若程序在一次執(zhí)行中多次調(diào)用rand(),則依次從這個數(shù)列中取值。然而,如果每次開始取值的位置(seed)是一樣的,那么所產(chǎn)生的值是一樣的。為了解決這個問題,就要改變每次開始的位置(seed的值),由于時間是不斷變化的,所以自然想到用time(NULL)/time(0),這樣一來,調(diào)用rand()前,先定義srand(time(0)),就使得每次數(shù)列的開始位置不一樣(也可理解為使用seed計算得到了這個數(shù)列,每次seed不同,數(shù)列不同)。   舉例:#include<iostream>using namespace std;#include<time.h>#include<stdlib.h>void main(){ //A for(int i=0;i<10;i++) { srand(time(NULL)); cout<<time(NULL)<<' '<<rand()<<'/n'; }}

  若把srand(time(NULL))放在循環(huán)里,由于循環(huán)速度很快,時間在秒數(shù)的量級上沒有變化,所以總是用同一個seed對數(shù)列初始化,故多次運行,輸出的隨機數(shù)都是相同的。   seed用time(0)初始化一次就好,置于循環(huán)中達不到產(chǎn)生隨機數(shù)的目的,應(yīng)將其置于A行。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 陆河县| 江阴市| 葵青区| 咸丰县| 安阳县| 棋牌| 梓潼县| 西安市| 兴国县| 柯坪县| 肃宁县| 启东市| 大渡口区| 化隆| 大埔区| 华阴市| 崇明县| 垣曲县| 米脂县| 潮安县| 砀山县| 台南县| 和顺县| 郴州市| 邮箱| 长汀县| 来安县| 华蓥市| 宁河县| 政和县| 萝北县| 望城县| 屏南县| 乌拉特前旗| 沈丘县| 木兰县| 济源市| 汕尾市| 德安县| 灯塔市| 兴文县|