1. 程式人生 > >c語言產生隨機數的函式

c語言產生隨機數的函式

1.產生隨機數   (1)使用該函式首先應在開頭包含 標頭檔案stdlib.h

(2)在標準的C庫中函式rand()可以生成0~RAND_MAX之間的一個隨機數,其中RAND_MAX 是stdlib.h 中定義的一個整數,它與系統有關。

(3)rand()函式沒有輸入引數,直接通過表示式rand()來引用;

(4)標準C並沒有規定int整數的位數,int的位數由編譯器定義,例如:
       TC編譯器中int是16位的,unsigned int 也是16位的,既可以表示0——65535範圍內的數;

       VC中int的是32位的,unsigned int 也是32位,0——2^32 -1
       所以 unsigned int rand()產生的隨機數範圍還是看編譯器的環境而定。
 一個小例子:
#include<stdio.h>
#include<stdlib.h>
int main()
{int n=0;
 n=rand();
 printf("n=%d\n",n);
 system("pause");
 return 0;
 }
2.產生一定範圍的隨機數

要讓隨機數限定在一個範圍,可以採用模除加加法的方式。  要產生隨機數r, 其範圍為 m<=r<=n,可以使用如下公式:   rand()%(n-m+1)+m 其原理為,對於任意數, 0<=rand()%(n-m+1)<=n-m 於是 0+m<=rand()%(n-m+1)+m<=n-m+m m<=rand()%(n-m+1)+m<=n

3.產生可變化的隨機數
srand()來設定種子

rand()來產生隨機數

兩個區別看我的部落格

點選開啟連結 來個例子:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//初始化二維陣列
void init_pane()
{
	int i = 0, j = 0;
	for (i = 0; i<4; i++)
	{
		for (j = 0; j<4; j++)
		{
			pane[i][j] = 0;
		}
	}
	srand(time(NULL));
	i = rand() % 4;
	j = rand() % 4;
	if (i == 0 || i == 2)
	{
		pane[i][j] = 2;
	}
	else
	{
		pane[i][j] = 4;
	}
}