欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

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

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊: 次

前言:編程中經(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

上一篇:計(jì)時(shí)器的time_t和clock_t 的兩種實(shí)現(xiàn)方法(推薦)

欄    目:C語言

下一篇:基礎(chǔ)C語言編程時(shí)易犯錯(cuò)誤有哪些

本文標(biāo)題:VC隨機(jī)函數(shù)srand和rand用法

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1985.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有