1. 程式人生 > >C語言產生隨機數(偽)

C語言產生隨機數(偽)

spa lan amp 頭文件 獲取 baidu stdio.h 得到 targe

C語言的獲取隨機數的函數為rand(), 可以獲得一個非負整數的隨機數。要調用rand需要引用頭文件stdlib.h。
要讓隨機數限定在一個範圍,可以采用模除加加法的方式。
要產生隨機數r, 其範圍為 m<=r<=n,可以使用如下公式:
rand()%(n-m+1)+m
其原理為,對於任意數,
0 <= rand()%(n-m+1) <= n-m

(即rand()%(n-m+1)生成的隨機數是在0到n-m之間的)

於是
0+m <= rand()%(n-m+1)+m <= n-m+m

(於是給這個隨機數加上m就可以得到m到n-m之間的隨機數)


m<=rand()%(n-m+1)+m<=n

示例代碼

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
using namespace std;
void main() //生成7個在77-100之間的隨機數
{
int random, i;
srand(time(NULL));
for(i=0; i<7; ++i)
{
random = rand() % 34 + 77;
cout<<random<<" ";
}
}

C語言產生隨機數(偽)