c語言隨機(jī)函數(shù)怎么輸入,c語言隨機(jī)函數(shù)用法

C語言隨機(jī)函數(shù)怎么弄

C++的隨機(jī)函數(shù)

在明溪等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷,成都外貿(mào)網(wǎng)站建設(shè),明溪網(wǎng)站建設(shè)費(fèi)用合理。

C++/c語言里,是沒有辦法得到一個(gè)真正的隨機(jī)數(shù)序列的.想要等到一個(gè)真正的隨機(jī)數(shù)序列,必須使用特定的隨機(jī)數(shù)硬件發(fā)生器.也就是說,軟件是沒有辦法產(chǎn)生真正的隨機(jī)數(shù).因?yàn)檐浖仨毎凑找欢ǖ倪壿媮砭帉?既然是按照特定的邏輯(也就是說算法)來編寫 ,那么產(chǎn)生的運(yùn)算結(jié)果就是一定的.這一點(diǎn),就是軟件天生的特性.想想看,如果一個(gè)軟件,同樣的代碼喝條件下,每次運(yùn)行的結(jié)果不一樣,那還有誰會(huì)用?

所以,在C++/C語言中,就有了"偽隨機(jī)數(shù)"的概念.意思也就是說,通過一個(gè)特定的算法,產(chǎn)生一個(gè)假的隨機(jī)數(shù)序列.那么,程序員又希望這個(gè)隨機(jī)數(shù)序列跟接近真正的隨機(jī)數(shù)序列,也就是希望得到的序列的不一樣,所以有了一個(gè)"播種"的概念.

srand(unsgined int seed);

這個(gè)函數(shù)就是用來"播種"的.通過一個(gè)"種子"(SEED),來控制隨機(jī)數(shù)的序列不一樣.只要種子不一樣,那么通過rand()得到的隨機(jī)數(shù)序列就不一樣.反過來說,如果種子一樣,那么通過srand()得到的隨機(jī)數(shù)就是一樣的.

srand(0);

for( int i = 0; i 10; i++)

{

coutrand()' ';

}

你試著將這個(gè)程序執(zhí)行兩次,你會(huì)發(fā)現(xiàn)兩次的結(jié)果一樣。那是因?yàn)?,一旦“種子”確定了,那么這個(gè)隨機(jī)數(shù)序列就確定了。軟件天生的“行為可重復(fù)性”決定了這一點(diǎn)。

所以,一般在播種的時(shí)候,喜歡用一個(gè)隨機(jī)的種子.在絕大多數(shù)的情況下,會(huì)使用當(dāng)前的系統(tǒng)時(shí)間.這個(gè)數(shù)字在每次程序運(yùn)行的時(shí)候都不一樣.除非你手動(dòng)的改系統(tǒng)時(shí)間.

編程時(shí)有時(shí)需要隨機(jī)輸入一些數(shù),這是調(diào)用隨機(jī)函數(shù)可以完成此相命令.

# include “stdio.h”

# include “stdlib.h”

# include “time.h” /*需引用的頭文件*/

srand((unsigned)time(NULL)); /*隨機(jī)種子*/

n=rand()%(Y-X+1)+X; /*n為X~Y之間的隨機(jī)數(shù)*/

進(jìn)一步解釋

srand()設(shè)置隨機(jī)數(shù)種子,rand()得到隨機(jī)數(shù)

random()的函數(shù)原型為int random(int num)

它的作用是Returns an integer between 0 and (num-1)

而randomize的函數(shù)原型為void randomize(void)

它的作用是Initializes the random number generator with a random value.

它們的區(qū)別是前者限定隨機(jī)數(shù)的產(chǎn)生范圍,而后者這完全是隨機(jī)的,另外使用這兩個(gè)函數(shù)時(shí)

應(yīng)含入

#include stdlib.h

#include time.h

頭文件。

一個(gè)例子:

用法如下:

#include stdlib.h

#include stdio.h

#include time.h

void main( void )

{

int i,k;

srand( (unsigned)time( NULL ) ); //用系統(tǒng)時(shí)間當(dāng)種子,對(duì)隨機(jī)函數(shù)進(jìn)行初始化

for( i = 0; i 10;i++ )

{

k=rand()%100; //產(chǎn)生各個(gè)隨機(jī)數(shù)

printf( " k=%d\n", k );

}

}

再抄個(gè)~

在VC中設(shè)計(jì)到隨機(jī)數(shù)有兩個(gè)函數(shù)

srand() and rand()

srand() 的作用是是一個(gè)種子,提供每次獲得隨機(jī)數(shù)的基數(shù)而已,rand()根據(jù)種子而產(chǎn)生隨機(jī)數(shù)

注意

1:srand() 里的值必須是動(dòng)態(tài)變化的,否則得到的隨機(jī)數(shù)就是一個(gè)固定數(shù)

2:其實(shí)可以不用寫srand() ,只用rand()就可以了,省事,簡單,例子如下

如果我們想得到一個(gè) 0-60的隨機(jī)數(shù)那么可以寫成

int i;

i=rand()%60;

就可以了。

當(dāng)然最好有個(gè)統(tǒng)一的標(biāo)注如下:

int i;

srand((unsigned)time( NULL ));

i=rand()%60;

這樣就OK了

例題隨機(jī)取數(shù),取1到99之間

1、#include iostream.h

#include stdlib.h

#include time.h

int main()

{

int n;//n為隨機(jī)數(shù)

srand(time(NULL));

n=1+rand()%99;

coutn;

return 0;

}

2、#includeiostream.h

#includestdlib.h

#includetime.h

void main()

{

int a;

srand((unsigned) time(NULL));

a=rand()%99+1;

couta;

}

3、#include iostream.h

#include stdlib.h

#include time.h

void main()

{

int j;

srand((unsigned)time(NULL));

loop:

j=rand()%100;

if(j==0)

{

cout"error"endl;

goto loop;

}

else coutjendl;

}

4、如果象樓上的你的那種做法做下去

那應(yīng)該是100%而不是98%

你一定是少了

srand(...........);

其實(shí)這個(gè)程序也不錯(cuò)

#include iostream

#include cstdlib

using namespace std;

int main()

{

int counter;

for(counter=0;counter10;counter++)

{

srand(counter+1);

cout"Random number"counter+1":"rand()endl;

}

system("pause");

return 0;

}

5、#include iostream.h

#include stdlib.h

int main()

{

int shu =100;

int n;//n為隨機(jī)數(shù)

srand(shu);

n=rand() % shu;

coutn;

return 0;

}

不拿時(shí)間作隨機(jī)數(shù),可以設(shè)一個(gè)種子數(shù)不清100這樣就產(chǎn)生0~99間的隨機(jī)數(shù)。

不過我沒有測(cè)試從復(fù)率,誰測(cè)了告訴我一下。

C語言中的rand()函數(shù)怎么用

rand()

rand()函數(shù)用來產(chǎn)生隨機(jī)數(shù),但是,rand()的內(nèi)部實(shí)現(xiàn)是用線性同余法實(shí)現(xiàn)的,是偽隨機(jī)數(shù),由于周期較長,因此在一定范圍內(nèi)可以看成是隨機(jī)的。

rand()會(huì)返回一個(gè)范圍在0到RAND_MAX(至少是32767)之間的偽隨機(jī)數(shù)(整數(shù))。

在調(diào)用rand()函數(shù)之前,可以使用srand()函數(shù)設(shè)置隨機(jī)數(shù)種子,如果沒有設(shè)置隨機(jī)數(shù)種子,rand()函數(shù)在調(diào)用時(shí),自動(dòng)設(shè)計(jì)隨機(jī)數(shù)種子為1。隨機(jī)種子相同,每次產(chǎn)生的隨機(jī)數(shù)也會(huì)相同。

rand()函數(shù)需要的頭文件是:stdlib.h

rand()函數(shù)原型:int rand(void);

使用rand()函數(shù)產(chǎn)生1-100以內(nèi)的隨機(jī)整數(shù):int number1 = rand() % 100+1。

srand()

srand()函數(shù)需要的頭文件仍然是:stdlib.h

srand()函數(shù)原型:void srand (usigned int seed);

srand()用來設(shè)置rand()產(chǎn)生隨機(jī)數(shù)時(shí)的隨機(jī)數(shù)種子。參數(shù)seed是整數(shù),通??梢岳胻ime(0)或getpid(0)的返回值作為seed。

使用rand()和srand()產(chǎn)生1-100以內(nèi)的隨機(jī)整數(shù):

srand(time(0));

int number1 = rand() % 100+1。

c語言隨機(jī)函數(shù)怎么用,怎么定義?

隨機(jī)函數(shù)就是產(chǎn)生數(shù)的函數(shù),c語言里有rand(),srand()等函數(shù)。

用法

#include

#include

#include

void main( void )

{

int i,k;

srand( (unsigned)time( NULL ) ); //用系統(tǒng)時(shí)間當(dāng)種子,對(duì)隨機(jī)函數(shù)進(jìn)行初始化

for( i = 0; i 10;i++ )

{

k=rand()%100; //產(chǎn)生各個(gè)隨機(jī)數(shù)

printf( " k=%d/n", k );

}

}

詳述

rand() srand() 頭文件為#include

標(biāo)準(zhǔn)C庫中函數(shù)rand()可以生成0~RAND_MAX之間的一個(gè)隨機(jī)數(shù),其中RAND_MAX 是stdlib.h 中定義的一個(gè)整數(shù),它與系統(tǒng)有關(guān)。

rand()函數(shù)沒有輸入?yún)?shù),直接通過表達(dá)式rand()來引用,rand()%n是產(chǎn)生的隨機(jī)數(shù)對(duì)n取余,起到了取0到n-1之間隨機(jī)數(shù)的作用;

例如可以用下面的語句來打印兩個(gè)隨機(jī)數(shù): printf("Random numbers are: %i %i/n",rand(),rand());

因?yàn)閞and()函數(shù)是按指定的順序來產(chǎn)生整數(shù),而未指定運(yùn)行的種子,所以rand()每次使用的都是同一個(gè)種子來產(chǎn)生隨機(jī)數(shù)序列,因此每次執(zhí)行上面的語句都打印相同的兩個(gè)值,所以說C語言的隨機(jī)并不是正真意義上的隨機(jī)。

為了時(shí)程序在每次執(zhí)行時(shí)都能生成一個(gè)新序列的隨機(jī)值,我們通常通過為隨機(jī)數(shù)生成器提供一粒新的隨機(jī)種子。函數(shù) srand()(來自stdlib.h)可以為隨機(jī)數(shù)生成器播散種子。只要種子不同rand()函數(shù)就會(huì)產(chǎn)生不同的隨機(jī)數(shù)序列。srand()稱為隨機(jī)數(shù)生成器的初始化器。

srand( (unsigned)time( NULL ) ); 用系統(tǒng)時(shí)間當(dāng)種子,對(duì)隨機(jī)函數(shù)進(jìn)行初始化,每次的系統(tǒng)時(shí)間不同,所以種子也就不同,產(chǎn)生的隨機(jī)數(shù)序列也就不同。

在C語言中如何使用隨機(jī)函數(shù)

先定義一個(gè)變量,比如:int

m;然后就直接m=random();如果隨機(jī)數(shù)有范圍的話(比如在0到54之間),就可以對(duì)55求余,即m=random()%55;

新聞標(biāo)題:c語言隨機(jī)函數(shù)怎么輸入,c語言隨機(jī)函數(shù)用法
轉(zhuǎn)載來于:http://m.kartarina.com/article34/heiese.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)關(guān)鍵詞優(yōu)化、定制開發(fā)、搜索引擎優(yōu)化定制網(wǎng)站、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
主站蜘蛛池模板: 国产在线无码视频一区二区三区| 人妻AV中出无码内射| 在线观看无码AV网站永久免费| 亚洲国产成人精品无码区二本 | 亚洲精品无码专区在线| 无码办公室丝袜OL中文字幕| 夜夜添无码一区二区三区| 一夲道dvd高清无码| 久久久久久无码国产精品中文字幕| 无码专区天天躁天天躁在线| 国产av无码久久精品| 国产精品久久久久无码av| 精品无人区无码乱码大片国产| 久久成人无码国产免费播放| 日韩av片无码一区二区三区不卡| 久久久久成人精品无码中文字幕| 毛片亚洲AV无码精品国产午夜 | 国产V亚洲V天堂A无码| 日韩av片无码一区二区不卡电影| 精品久久久无码中文字幕边打电话| 国产精品无码永久免费888| 亚洲av中文无码字幕色不卡| 无码人妻一区二区三区免费看| 日韩精品无码一区二区视频| 五十路熟妇高熟无码视频| 亚洲AV无码AV日韩AV网站| 永久免费av无码网站韩国毛片| 亚洲Av无码专区国产乱码DVD| 最新国产精品无码| 中文字幕无码日韩专区| 黄A无码片内射无码视频| 精品久久久无码中文字幕天天| 无码人妻丰满熟妇区毛片18| 亚洲精品9999久久久久无码| 91无码人妻精品一区二区三区L| 少妇精品无码一区二区三区| 久久精品国产亚洲AV无码麻豆| 亚洲av无码片区一区二区三区 | 无码午夜成人1000部免费视频| 国产成人精品无码免费看| 亚洲日韩精品无码一区二区三区|