Random意思是返回一個(gè)0~num-1之間的隨機(jī)數(shù)。?random(num)是在stdlib.h中的一個(gè)宏定義。num和函數(shù)返回值都是整型數(shù)。
成都創(chuàng)新互聯(lián)主營(yíng)新沂網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,App定制開(kāi)發(fā),新沂h5微信平臺(tái)小程序開(kāi)發(fā)搭建,新沂網(wǎng)站營(yíng)銷推廣歡迎新沂等地區(qū)企業(yè)咨詢
如需要在一個(gè)random()序列上生成真正意義的隨機(jī)數(shù),在執(zhí)行其子序列時(shí)使用randomSeed()函數(shù)預(yù)設(shè)一個(gè)絕對(duì)的隨機(jī)輸入,例如在一個(gè)斷開(kāi)引腳上的analogRead()函數(shù)的返回值。
擴(kuò)展資料
Random使用之前需要使用Randomize語(yǔ)句進(jìn)行隨機(jī)數(shù)種子的初始化。RANDOM產(chǎn)生的是偽隨機(jī)數(shù)或者說(shuō)是用一種復(fù)雜的方法計(jì)算得到的序列值,因此每次運(yùn)算時(shí)需要一個(gè)不同的種子值。種子值不同,得到的序列值也不同。因此也就是真正的隨機(jī)數(shù)了。
RANDOM產(chǎn)生的是偽隨機(jī)數(shù)或者說(shuō)是用一種復(fù)雜的方法計(jì)算得到的序列值,因此每次運(yùn)算時(shí)需要一個(gè)不同的種子值。種子值不同,得到的序列值也不同。因此也就是真正的隨機(jī)數(shù)了。這也正是RANDOMIZE隨機(jī)初始化的作用。 VB里用 NEW RANDOM()來(lái)表示初始化。
參考資料來(lái)源:百度百科-random()
srand(int)用來(lái)設(shè)種子,然后每次rand()返回一個(gè)隨機(jī)值種子最好是每次都不同的,否則你每次得到的都是同樣的一系列偽隨機(jī)數(shù),通常讓種子和當(dāng)前時(shí)間相關(guān),比如srand((unsigned)time(0));
C語(yǔ)言里面沒(méi)有random函數(shù)
只有rand
功能是產(chǎn)生一個(gè)整型隨機(jī)數(shù)。
比如
n=rand();
這樣就可以了
為了真隨機(jī),一般在開(kāi)始設(shè)置一個(gè)種子 一次即可。 常用方式為
srand(time(NULL));
1.
rand函數(shù)是根據(jù)一個(gè)數(shù)(我們可以稱它為種子)為基準(zhǔn),以某個(gè)遞推公式推算出來(lái)的一系數(shù),當(dāng)這系列數(shù)很大的時(shí)候,就符合正態(tài)公布,從而相當(dāng)于產(chǎn)生了隨機(jī)數(shù),
2.
但這產(chǎn)生的并不是真意正義上的隨機(jī)數(shù),是一個(gè)偽隨機(jī)數(shù),當(dāng)計(jì)算機(jī)正常開(kāi)機(jī)后,這個(gè)種子的值是定了的,除非你破壞了系統(tǒng),為了改變這個(gè)種子的值。
3.
種子相同,產(chǎn)生的隨機(jī)序列相同。這樣做的好處是,方便我們產(chǎn)生一組固定的隨機(jī)序列,用來(lái)調(diào)試程序。
4.
C提供了srand()函數(shù),用來(lái)設(shè)置種子,它的原形是void
srand(
int
a)。
5.
在調(diào)用rand函數(shù)產(chǎn)生隨機(jī)數(shù)前,應(yīng)該先利用srand()設(shè)好隨機(jī)數(shù)種子,如果未設(shè)隨機(jī)數(shù)種子,默認(rèn)種子為1。
rand()函數(shù)可以用來(lái)產(chǎn)生隨機(jī)數(shù),但是這不是真真意義上的隨機(jī)數(shù),是一個(gè)偽隨機(jī)數(shù),是根據(jù)一個(gè)數(shù),我們可以稱它為種了,為基準(zhǔn)以某個(gè)遞推公式推算出來(lái)的一系數(shù),當(dāng)這系列數(shù)很大的時(shí)候,就符合正態(tài)公布,從而相當(dāng)于產(chǎn)生了隨機(jī)數(shù),但這不是真正的隨機(jī)數(shù),當(dāng)計(jì)算機(jī)正常開(kāi)機(jī)后,這個(gè)種子的值是定了的,除非你破壞了系統(tǒng),為了改變這個(gè)種子的值,C提供了 srand()函數(shù),它的原形是void srand( int a).
初始化隨機(jī)產(chǎn)生器既rand()函數(shù)的初始值,即使把種子的值改成a; 從這你可以看到通過(guò)sand()函數(shù),我們是可以產(chǎn)生可以預(yù)見(jiàn)的隨機(jī)序列,那我們?nèi)绾尾拍墚a(chǎn)生不可預(yù)見(jiàn)的隨機(jī)序列呢?我們可能常常需要這樣的隨機(jī)序列,是吧。利用srand((unsign)(time(NULL))是一種方法,因?yàn)槊恳淮芜\(yùn)行程序的時(shí)間是不同的.
下面講一講在C語(yǔ)言里所提供的隨機(jī)數(shù)發(fā)生器的用法?,F(xiàn)在的C編譯器都提供了一個(gè)基于ANSI標(biāo)準(zhǔn)的偽隨機(jī)數(shù)發(fā)生器函數(shù),用來(lái)生成隨機(jī)數(shù)。它們就是rand()和srand()函數(shù)。這二個(gè)函數(shù)的工作過(guò)程如下:
1) 首先給srand()提供一個(gè)種子,它是一個(gè)unsigned int類型,其取值范圍從0~65535;
2) 然后調(diào)用rand(),它會(huì)根據(jù)提供給srand()的種子值返回一個(gè)隨機(jī)數(shù)(在0到32767之間)
3) 根據(jù)需要多次調(diào)用rand(),從而不間斷地得到新的隨機(jī)數(shù);
4) 無(wú)論什么時(shí)候,都可以給srand()提供一個(gè)新的種子,從而進(jìn)一步“隨機(jī)化”rand()的輸出結(jié)果。
以下是一個(gè)產(chǎn)生隨機(jī)數(shù)的例子:
需要首先使用隨機(jī)數(shù)“種子”初始化,srand函數(shù):
#i?nclude?stdlib.h
#i?nclude?stdio.h
#i?nclude?time.h//使用當(dāng)前時(shí)鐘做種子
void?main(?void?)
{
int?i;
srand(?(unsigned)time(?NULL?)?);//初始化隨機(jī)數(shù)
/*?打印10個(gè)隨機(jī)數(shù).?*/
for(?i?=?0;?i??10;i++?)
printf(?"?%d\n",?rand()?);
}
#include?stdlib.h
#include?time.h
main
{
int?i;
srand(time(0));?//初始化隨機(jī)種子
i?=?rand();?//產(chǎn)生隨機(jī)數(shù)
}
首先,加一個(gè)"#includestdlib.h
然后設(shè)一個(gè)變量,如j,j=rand(),就可以給j賦一個(gè)1~32767的隨機(jī)數(shù),如果要獲得一個(gè)隨機(jī)函數(shù)的十位(其它類似),只需令j=j%10就行.
添加頭文件 #includetime.h
然后在文件中添加 srand((unsigned)time(NULL));
srand()是用來(lái)初始化隨機(jī)種子數(shù)的,因?yàn)閞and的內(nèi)部實(shí)現(xiàn)是用線性同余法做的,它不是真的隨機(jī)數(shù),只不過(guò)是因?yàn)槠渲芷谔貏e長(zhǎng),所以有一定的范圍里可看成是隨機(jī)的.
上面是有個(gè)隨機(jī)種子的說(shuō)明及方法,為了避免重復(fù).然后再 用 隨機(jī)函數(shù),rand() 就行了.
頭文件是 stdlib.h
random() 產(chǎn)生隨機(jī)數(shù)為 0或1
random(n) 產(chǎn)生隨機(jī)數(shù)為 0到n之間的一個(gè)隨機(jī)數(shù)
rand() 產(chǎn)生 0到32768之間的一個(gè)隨機(jī)數(shù)
函數(shù)名: randomize
功 ?能: 初始化隨機(jī)數(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;
}
這段程序?qū)崿F(xiàn)是產(chǎn)生十個(gè)隨機(jī)數(shù),srand函數(shù)是輸入系統(tǒng)隨機(jī)種子,程序一般都是采用時(shí)間作為隨機(jī)種子。至于產(chǎn)生1到100之間的數(shù)可以對(duì)隨機(jī)產(chǎn)生值進(jìn)行100求模,這樣就可以保證數(shù)在1~100之間了!