C語言實現RAND函式的方法

2021-10-11 21:46:52 字數 558 閱讀 6105

c語言使用rand()%乙個值就可以實現生成乙個偽隨機數供我們使用,那麼rand函式是如何實現的呢?我們自己可不可以編輯出來?其實是可以的,rand作為偽隨機數發生器產生的是乙個偽隨機數,一般的用途能夠滿足。

要想實現這個函式,需要用乙個公式,x=ax+b%65536用這樣的公式就可以簡單的實現隨機數了,至於為什麼是214013、2531011這兩個數應該是有個內部邏輯,數學上的驗證而來,這兩個數如果任意取可能效果不是很好。

static

long holdrand =1l;

void __cdecl srand (

unsigned

int seed)

int __cdecl rand (

void

)

定義完上面之後,在主函式中呼叫。

int

main()

這樣就可以簡單實現這個函式了。注意到這樣實現的效果是與c庫函式一模一樣,沒有任何差別,如果你換了 214013l/2531011l的值的話,那麼生成的結果可能就不一樣了。

c語言rand函式

include include includemain 其實rand一點都不隨機 一直都是410 184670 63340 265000 191690 press any key to continue 函式說明 因為rand的內部實現是用線性同餘法做的,他不是真的隨機數,只不過是因為其週期特別長,...

C語言中rand函式

rand函式功能為獲取乙個偽隨機數 偽隨機數的概念下面會有介紹 一 函式名 rand 二 宣告 int rand 三 所在標頭檔案 stdlib.h 四 功能 返回乙個偽隨機數。之所以說是偽隨機數,是因為在沒有其它操作下,每次執行同乙個程式,呼叫rand得到的隨機數序列是固定的 不是真正的 隨機 五...

C語言中的rand 函式

rand函式,c語言中用來產生乙個隨機數的函式。rand函式界限 stdlib.h標頭檔案中有巨集 define rand max 0x7fff rand產生乙個0 0x7fff的隨機數,即最大是32767的乙個數 rand函式原型 include int rand void rand函式呼叫 sr...