學技術,重在日拱一卒、一點一滴的積累。
今天,我們一起來分析C語言的算法:生成隨機數。
算法項目:用C語言獲取一個隨機數,隨機數范圍在一個范圍之內。
編程思路:
1、C語言庫函數中,有獲取隨機數函數,名稱為rand(), 可以通過該函數獲得一個非負整數的隨機數。
2、要調用rand需要引用頭文件stdlib.h。要讓隨機數限定在一個范圍,可以采用模除,加加法的方式。
3、要產生隨機數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<stdio.h>
#include<stdlib.h>
#include<time.h>
/*生成6個在68-100之間的隨機數*/
void main()
{
int random;
char i;
srand(time(NULL));
for(i=0; i<6; ++i)
{
/*29=100-68+1*/
random =68+rand()%33;
printf("%d ",random);
}
}
程序運行結果案例:
1.jpg (23.65 KB, 下載次數: 65)
下載附件
2022-8-29 10:15 上傳
2.jpg (23.34 KB, 下載次數: 61)
下載附件
2022-8-29 10:16 上傳
|