如何在C語言和OC中生成隨機數??

1)如何在C語言中生成隨機數?

2)如何在OC中生成隨機數?用什麼函式?

如何在C語言和OC中生成隨機數?

工具/原料

電腦

Xcode或者其他程式設計軟體平臺

方法/步驟

C語言中:

如果只要產生隨機數而不需要設定範圍的話,使用rand( )就可以了,會自動返回一個隨機值,範圍在0~RAND_MAX(2147483647)間。RAND_MAX定義在stdlib.h中,要使用時別忘了匯入標頭檔案stdlib.h。

如果要生成一個指定範圍的數,可以在巨集定義中定義一個 random(int number) 函式,然後在 main()函式裡面直接呼叫random()。

如何在C語言和OC中生成隨機數?

但是上面兩種方法生成的隨機數都是一次性的,第二次執行的結果會和第一次一樣,這與srand()函式有關。srand()用來設定rand()產生隨機數時的隨機數種子。在呼叫rand()函式產生隨機數前,必須先利用srand()設好隨機數種子(seed), 如果未設隨機數種子, rand()在呼叫時會自動設隨機數種子為1。上面的兩個例子就是因為沒有設定隨機數種子,每次隨機數種子都自動設成相同值1 ,進而導致rand()所產生的隨機數值都一樣。

如何在C語言和OC中生成隨機數?

srand()函式定義 : void srand (unsigned int seed);

通常可以利用geypid()或time(0)的返回值來當做seed 如果你用time(0)的話,要加入標頭檔案 ;示例如下圖

如何在C語言和OC中生成隨機數?

在OC中:

arc4random() 比較精確不需要生成隨即種子

使用方法 :

通過arc4random() 獲取0到x-1之間的整數的程式碼如下:

int value = arc4random() % x;

獲取1到x之間的整數的程式碼如下:

int value = (arc4random() % x) + 1;

如何在C語言和OC中生成隨機數?

Objective-C有個更方便的隨機數函式arc4random_uniform(x),可以用來產生0~(x-1)範圍內的隨機數,不需要再進行取模運算。如果要生成1~x的隨機數,可以這麼寫:arc4random_uniform(x)+1。

CCRANDOM_0_1() cocos2d中使用 ,範圍是[0,1]

使用方法:

float random = CCRANDOM_0_1() * 5; //[0,5] CCRANDOM_0_1() 取值範圍是[0,1]

random() 需要初始化時設定種子

使用方法:

srandom((unsigned int)time(time_t *)NULL); //初始化時,設定下種子就好了。

如何在C語言和OC中生成隨機數?

語言, 函式, 隨機數,
相關問題答案

Have any Question?

Let us answer it!