建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

新蒲京澳門賭場網站:隨機函數rand ()C++

?

一、C++中不能應用random()函數

random函數不是ANSI C標準,不能在gcc,v新蒲京澳門賭場網站c等編譯器下編譯經由過程。但在C說話中int random(num)可以這樣應用,它返回的是0至num-1的一個隨機數。 可改用C++下的rand函數來實現。

1、C++標準函數庫供給一隨機數天生器rand,返回0-RAND_MAX之間平均散播的偽隨機整數。 RAND_MAX必須至少為32767.rand()函數不吸收參數,默認以1為種子(即肇端值)。 隨機數天生器總因此相同的種子開始,以是形成的偽隨機數列也相同,掉去了隨機意義。(但這樣便于法度榜樣調試)

2、C++中另一函數srand(),可以指定不合的數(無符號整數變元)為新蒲京澳門賭場網站種子。然則假如種子相同,偽隨機數列也相同。一個法子是讓用戶輸入種子,然則仍舊不抱負。

3、 對照抱負的是用變更的數,比如光陰來作為隨機數天生器的種子。 time的值不時候刻都不合。以新蒲京澳門賭場網站是種子不合,以是,孕育發生的隨機數也不新蒲京澳門賭場網站合。

// C++隨機函數(VC program)

#include

#include

#include

using namespace std;

#define MAX 100

int main(int argc, char* argv[])

{

srand( (unsigned)time( NULL ) );//srand()函數孕育發生一個以當前光陰開始的隨機種子.應該放在for等輪回語句前面 不然要很長光陰等待

for (int i=0;i

二、rand()的用法ra新蒲京澳門賭場網站nd()不必要參數,它會返回一個從0到最大年夜隨機數的隨意率性整數,最大年夜隨機數的大年夜小平日是固定的一個大年夜整數。

/*maximumvaluereturnedby"rand"function

*/

#defineRAND_MAX0x7fffu

這個是bcc55中的定義,闡明這個整數的最大年夜數是0x7fffu,u代表unicode編碼。

這樣,假如你要孕育發生0~10的10個整數,可以表達為:

int N = rand() % 11;

這樣,N的值便是一個0~10的隨機數,假如要孕育發生1~10,則是這樣:

int N = 1 + rand() % 11;

總結來說,可以表示為:

a + rand() % n

此中的a是肇端值,n是整數的范圍。

a + rand() % (b-a+1) 就表示 a~b之間的一個隨機數

若要0~1的小數,則可以先取得0~10的整數,然后均除以10即可獲得隨機到十分位的10個隨機小數,若要獲得隨機到百分位的隨機小數,則必要先獲得0~100的10個整數,然后均除以100,其它環境依此類推。

平日rand()孕育發生的隨機數在每次運行的時刻都是與上一次相同的,這是故意這樣設計的,是為了便于法度榜樣的調試。若要孕育發生每次不合的隨機數,可以應用srand( seed )函數進行隨機化,跟著seed的不合,就能夠孕育發生不合的隨機數。

如大年夜家所說,還可以包孕time.h頭文件,然后應用srand(time(0))來應用當前光陰使隨機數發生器隨機化,這樣就可以包管每兩次運行時可以獲得不合的隨機數序列(只要兩次運行的距離跨越1秒)。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
英雄联盟客服 斗地主下载电脑版 齐天大圣捕鱼游戏机玩法 25选7 甘肃十一选五前一奖金 排列3试机号和开奖号走势图 竞彩足球app官网下载 北京快三开奖号 河南快赢481技巧稳挣 190bb踢球者即时指数