真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

用c語言寫radom函數(shù),c語言rand函數(shù)用法舉例

C語言random函數(shù)

s_addr是一個long型的變量,當然可以用random的返回值進行賦值。結構體如下:

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設計、網(wǎng)站建設與策劃設計,金秀網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:金秀等地區(qū)。金秀做網(wǎng)站價格咨詢:18982081108

typedef struct in_addr {

union {

struct {

u_char s_b1,s_b2,s_b3,s_b4;

} S_un_b;

struct {

u_short s_w1,s_w2;

} S_un_w;

u_long S_addr;////////////////////////////////////////這里

} S_un;

} in_addr;

IP地址本來就是一個32位整數(shù),只不過為了方便記憶和查看,將8位作為一組,每組用10進制數(shù)字表示,并且用'.'隔開。比如:0.0.0.3,對應的32位二進制數(shù)為:0000000000.....111(前面有29個0),s_addr就是記錄這個二進制數(shù)的。

struct {u_char s_b1,s_b2,s_b3,s_b4;} S_un_b;

這個是用4個10進制數(shù)表示的IP地址,

s_un_b.s_b1=0

s_un_b.s_b2=0

s_un_b.s_b3=0

s_un_b.s_b4=3

就是IP地址"0.0.0.3"了,系統(tǒng)負責將它轉換為32位二進制數(shù)。

struct {u_short s_w1,s_w2;} S_un_w;

這個是指前16位作為一部分,后面16位作為一個部分。".0.0.0.3"前面16位作為一個部分值為0,后面的部分值為3,所以:

s_un_w.s_w1=0;

s_un_w.s_w2=3;

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

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

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

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

srand(unsgined int seed);

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

srand(0);

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

{

coutrand()' ';

}

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

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

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

# include “stdio.h”

# include “stdlib.h”

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

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

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

進一步解釋

srand()設置隨機數(shù)種子,rand()得到隨機數(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ū)別是前者限定隨機數(shù)的產(chǎn)生范圍,而后者這完全是隨機的,另外使用這兩個函數(shù)時

應含入

#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)時間當種子,對隨機函數(shù)進行初始化

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

{

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

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

}

}

再抄個~

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

srand() and rand()

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

注意

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

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

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

int i;

i=rand()%60;

就可以了。

當然最好有個統(tǒng)一的標注如下:

int i;

srand((unsigned)time( NULL ));

i=rand()%60;

這樣就OK了

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

1、#include iostream.h

#include stdlib.h

#include time.h

int main()

{

int n;//n為隨機數(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、如果象樓上的你的那種做法做下去

那應該是100%而不是98%

你一定是少了

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

其實這個程序也不錯

#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為隨機數(shù)

srand(shu);

n=rand() % shu;

coutn;

return 0;

}

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

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

C語言中 random() 函數(shù)怎么用?

srand(int)用來設種子,然后每次rand()返回一個隨機值種子最好是每次都不同的,否則你每次得到的都是同樣的一系列偽隨機數(shù),通常讓種子和當前時間相關,比如srand((unsigned)time(0));

詳細介紹一下C語言里面的隨機數(shù)產(chǎn)生函數(shù)random怎么用

rand()函數(shù)可以用來產(chǎn)生隨機數(shù),但是這不是真真意義上的隨機數(shù),是一個偽隨機數(shù),是根據(jù)一個數(shù),我們可以稱它為種了,為基準以某個遞推公式推算出來的一系數(shù),當這系列數(shù)很大的時候,就符合正態(tài)公布,從而相當于產(chǎn)生了隨機數(shù),但這不是真正的隨機數(shù),當計算機正常開機后,這個種子的值是定了的,除非你破壞了系統(tǒng),為了改變這個種子的值,C提供了 srand()函數(shù),它的原形是void srand( int a).

初始化隨機產(chǎn)生器既rand()函數(shù)的初始值,即使把種子的值改成a; 從這你可以看到通過sand()函數(shù),我們是可以產(chǎn)生可以預見的隨機序列,那我們如何才能產(chǎn)生不可預見的隨機序列呢?我們可能常常需要這樣的隨機序列,是吧。利用srand((unsign)(time(NULL))是一種方法,因為每一次運行程序的時間是不同的.

下面講一講在C語言里所提供的隨機數(shù)發(fā)生器的用法?,F(xiàn)在的C編譯器都提供了一個基于ANSI標準的偽隨機數(shù)發(fā)生器函數(shù),用來生成隨機數(shù)。它們就是rand()和srand()函數(shù)。這二個函數(shù)的工作過程如下:

1) 首先給srand()提供一個種子,它是一個unsigned int類型,其取值范圍從0~65535;

2) 然后調用rand(),它會根據(jù)提供給srand()的種子值返回一個隨機數(shù)(在0到32767之間)

3) 根據(jù)需要多次調用rand(),從而不間斷地得到新的隨機數(shù);

4) 無論什么時候,都可以給srand()提供一個新的種子,從而進一步“隨機化”rand()的輸出結果。

以下是一個產(chǎn)生隨機數(shù)的例子:

需要首先使用隨機數(shù)“種子”初始化,srand函數(shù):

#i?nclude?stdlib.h

#i?nclude?stdio.h

#i?nclude?time.h//使用當前時鐘做種子

void?main(?void?)

{

int?i;

srand(?(unsigned)time(?NULL?)?);//初始化隨機數(shù)

/*?打印10個隨機數(shù).?*/

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

printf(?"?%d\n",?rand()?);

}

#include?stdlib.h

#include?time.h

main

{

int?i;

srand(time(0));?//初始化隨機種子

i?=?rand();?//產(chǎn)生隨機數(shù)

}

首先,加一個"#includestdlib.h

然后設一個變量,如j,j=rand(),就可以給j賦一個1~32767的隨機數(shù),如果要獲得一個隨機函數(shù)的十位(其它類似),只需令j=j%10就行.

添加頭文件 #includetime.h

然后在文件中添加 srand((unsigned)time(NULL));

srand()是用來初始化隨機種子數(shù)的,因為rand的內部實現(xiàn)是用線性同余法做的,它不是真的隨機數(shù),只不過是因為其周期特別長,所以有一定的范圍里可看成是隨機的.

上面是有個隨機種子的說明及方法,為了避免重復.然后再 用 隨機函數(shù),rand() 就行了.

頭文件是 stdlib.h

random() 產(chǎn)生隨機數(shù)為 0或1

random(n) 產(chǎn)生隨機數(shù)為 0到n之間的一個隨機數(shù)

rand() 產(chǎn)生 0到32768之間的一個隨機數(shù)

函數(shù)名: randomize

功 ?能: 初始化隨機數(shù)發(fā)生器

用 ?法: void randomize(void);

程序例:

#include?stdlib.h

#include?stdio.h

#include?time.h

int?main(void)

{

int?i;

randomize();

printf("Ten?random?numbers?from?0?to?99\n\n");

for(i=0;?i10;?i++)

printf("%d\n",?rand()?%?100);

return?0;

}


網(wǎng)頁標題:用c語言寫radom函數(shù),c語言rand函數(shù)用法舉例
網(wǎng)站地址:http://weahome.cn/article/hcjehj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部