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...