1. 程式人生 > 其它 >C語言實現RAND函式的方法

C語言實現RAND函式的方法

技術標籤:C/C++c++

C語言使用rand()%一個值就可以實現生成一個偽隨機數供我們使用,那麼rand函式是如何實現的呢?我們自己可不可以編輯出來?其實是可以的,rand作為偽隨機數發生器產生的是一個偽隨機數,一般的用途能夠滿足。
要想實現這個函式,需要用一個公式,x=ax+b%65536用這樣的公式就可以簡單的實現隨機數了,至於為什麼是214013、2531011這兩個數應該是有個內部邏輯,數學上的驗證而來,這兩個數如果任意取可能效果不是很好。

static long holdrand = 1L;
void __cdecl srand (unsigned int seed)
{
        holdrand =
(long)seed; } int __cdecl rand (void) { return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff); }

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

int main()
{
	srand(GetTickCount());
	int i;
	i=rand()%100;
	printf("%d",i);
}

這樣就可以簡單實現這個函數了。