|
學(xué)技術(shù),重在日拱一卒、一點(diǎn)一滴的積累。
今天,我們一起來分析C語言的算法:生成隨機(jī)數(shù)。
算法項目:用C語言獲取一個隨機(jī)數(shù),隨機(jī)數(shù)范圍在一個范圍之內(nèi)。
編程思路:
1、C語言庫函數(shù)中,有獲取隨機(jī)數(shù)函數(shù),名稱為rand(), 可以通過該函數(shù)獲得一個非負(fù)整數(shù)的隨機(jī)數(shù)。
2、要調(diào)用rand需要引用頭文件stdlib.h。要讓隨機(jī)數(shù)限定在一個范圍,可以采用模除,加加法的方式。
3、要產(chǎn)生隨機(jī)數(shù)r, 其范圍為 m<=r<=n,可以使用如下公式:rand()%(n-m+1)+m,其原理為:對于任意數(shù),0 <= rand()%(n-m+1) <= n-m;即rand()%(n-m+1)生成的隨機(jī)數(shù)是在0到n-m之間的),于是0+m <= rand()%(n-m+1)+m <= n-m+m(于是給這個隨機(jī)數(shù)加上m就可以得到m到n-m之間的隨機(jī)數(shù)),即m<=rand()%(n-m+1)+m<=n。
程序范例
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
/*生成6個在68-100之間的隨機(jī)數(shù)*/
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);
}
}
程序運(yùn)行結(jié)果案例:
1.jpg (23.65 KB, 下載次數(shù): 65)
下載附件
2022-8-29 10:15 上傳
2.jpg (23.34 KB, 下載次數(shù): 61)
下載附件
2022-8-29 10:16 上傳
|
評分
-
查看全部評分
|