成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

c語言固定值隨機(jī)函數(shù) C語言隨機(jī)數(shù)函數(shù)

c語言在固定數(shù)中產(chǎn)生隨機(jī)數(shù)

#includestdio.h

創(chuàng)新互聯(lián)建站10多年企業(yè)網(wǎng)站設(shè)計服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站設(shè)計及推廣,對地磅秤等多個行業(yè)擁有豐富的網(wǎng)站推廣經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。

#includestring.h

#includestdlib.h

#includetime.h

int t[5]={307,3805,3852,823,704};

int main()

{

int test=10;

srand(unsigned(time(NULL)));

while(test--)

printf("%d\n",t[rand()%5]);

return 0;

}

如何用C語言從固定的一些數(shù)中產(chǎn)生隨機(jī)數(shù)?

樓上的有問題,很可能相當(dāng)長的時間才能完成一次隨機(jī),運(yùn)氣不好一天都完不成一次

/* 我自己想的一個方法:

1,數(shù)組flag[48],表示48個數(shù)是否被選中,初始化為0,表示未被選中。

2,srand(),rand()得到一個隨機(jī)數(shù)m。

3,然后得到我們需要的隨機(jī)數(shù)。第一次是m%48+1,第二次是m%47+1,第三次是m%46+1,...,最后一個不需要隨機(jī)了。

4,每次獲取隨機(jī)數(shù)后,這個隨機(jī)數(shù)表示第幾個未被選中的數(shù),每次選中后將flag標(biāo)志置1。

*/

#include stdio.h

#include time.h

#include stdlib.h

int main()

{

int Num = 48; // 需要隨機(jī)的次數(shù)

// 選中標(biāo)志

int Flag[48] ={0}; // 標(biāo)記是否已經(jīng)被隨機(jī)

// 輸出數(shù)據(jù)

int bufArr[48]={0}; // 保存隨機(jī)后的數(shù)據(jù)

int i = 0;

int j = 0;

int Rand_num = 0; // 保存中間隨機(jī)到的數(shù)據(jù)

int Rand_max = 0; // 保存當(dāng)前存在的數(shù)據(jù)數(shù)量

Rand_max = Num;

srand(time(0));

// 產(chǎn)生隨機(jī)數(shù)

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

{

Rand_num = rand()%Rand_max + 1; // 獲取隨機(jī)數(shù)Rand_num

for(j = 0; j Num; j++) // 遍歷所有數(shù)據(jù)

{

if(!Flag[j]) // 判斷該數(shù)據(jù)是否已經(jīng)隨機(jī)

Rand_num--;

if(!Rand_num) // 判斷是否數(shù)到第Rand_num個沒有標(biāo)記的數(shù)據(jù)

break;

}

bufArr[i] = j+1; // 獲取結(jié)果,第Rand_num個沒有標(biāo)記的數(shù)據(jù)

Flag[j] = 1; // 置獲取標(biāo)志

Rand_max--; // 需要隨機(jī)的數(shù)減少一個

}

// 每次都不一樣

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

{

if(i%8 == 0)

printf("\n");

printf("%5d", bufArr[i]);

}

printf("\n");

return 0;

}

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

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

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

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

srand(unsgined int seed);

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

srand(0);

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

{

coutrand()' ';

}

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

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

編程時有時需要隨機(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ī)的,另外使用這兩個函數(shù)時

應(yīng)含入

#include stdlib.h

#include time.h

頭文件。

一個例子:

用法如下:

#include stdlib.h

#include stdio.h

#include time.h

void main( void )

{

int i,k;

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

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

{

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

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

}

}

再抄個~

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

srand() and rand()

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

注意

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

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

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

int i;

i=rand()%60;

就可以了。

當(dāng)然最好有個統(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í)這個程序也不錯

#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;

}

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

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

網(wǎng)站標(biāo)題:c語言固定值隨機(jī)函數(shù) C語言隨機(jī)數(shù)函數(shù)
瀏覽路徑:http://jinyejixie.com/article6/heppig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站排名、網(wǎng)站改版網(wǎng)站建設(shè)、外貿(mào)建站動態(tài)網(wǎng)站

廣告

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

成都定制網(wǎng)站建設(shè)
泾川县| 海门市| 西藏| 巍山| 尚志市| 翼城县| 南开区| 平山县| 岚皋县| 连平县| 新安县| 邢台市| 平远县| 丹阳市| 两当县| 铁力市| 佛冈县| 和田县| 武平县| 景洪市| 建平县| 墨脱县| 专栏| 资源县| 阜新| 木兰县| 肇东市| 马山县| 班玛县| 和林格尔县| 彩票| 九龙城区| 肥东县| 阿城市| 乌审旗| 武川县| 旅游| 和政县| 拉孜县| 阳东县| 牡丹江市|