新聞中心
linux環(huán)境下由C語(yǔ)言實(shí)現(xiàn)隨機(jī)數(shù)的生成,可以使用C/C++編寫(xiě)的一個(gè)專(zhuān)門(mén)的隨機(jī)數(shù)函數(shù),它使得在程序中調(diào)用隨機(jī)數(shù)更加容易。本文介紹一種在Linux環(huán)境下實(shí)現(xiàn)隨機(jī)數(shù)生成的方法,讀者可以利用這個(gè)方法快速測(cè)試和實(shí)現(xiàn)自己的程序。

首先,使用Linux下C/C++語(yǔ)言中的rand函數(shù),其格式如下:
int rand(void);
rand()函數(shù)返回的是一個(gè)0到RAND_MAX(一個(gè)int數(shù)據(jù)類(lèi)型的最大值)之間的偽隨機(jī)整數(shù)(注意取值范圍)。其中,RAND_MAX的默認(rèn)取值為:32767,這個(gè)值可以根據(jù)編譯器的不同而有所不同。
要得到一個(gè)范圍更大的隨機(jī)數(shù),可以使用以下代碼:
#include
#include
int main()
{
int i, num;
// 使用當(dāng)前時(shí)間,作為隨機(jī)種子
srand((unsigned)time(NULL));
/* 生成 5 個(gè)[0, 20]之間的隨機(jī)數(shù) */
for(i = 0; i
{
num = rand() % 20;
printf(“%d “, num);
}
return 0;
}
輸出的結(jié)果:
9 13 12 0 14
這種方法也可以用來(lái)生成double或者float類(lèi)型的隨機(jī)數(shù),通過(guò)修改上面代碼中的取值范圍以及生成隨機(jī)數(shù)的方法,可以實(shí)現(xiàn)這一目的。具體代碼如下:
#include
#include
#include
int main()
{
double num;
// 使用當(dāng)前時(shí)間,作為隨機(jī)種子
srand((unsigned)time(NULL));
/* 生成 5 個(gè)[0, 99]之間的隨機(jī)數(shù) */
for(int i = 0; i
{
num = (double)rand() / (double)RAND_MAX * 99.0;
printf(“%f “, num);
}
return 0;
}
輸出結(jié)果:
11.709895 48.655593 11.890478 4.229529 4.866644
以上,為在Linux環(huán)境下實(shí)現(xiàn)隨機(jī)數(shù)生成的方法簡(jiǎn)要介紹,也可以根據(jù)實(shí)際的需求,通過(guò)修改生成隨機(jī)數(shù)的函數(shù)及其取值范圍來(lái)實(shí)現(xiàn)。在實(shí)際開(kāi)發(fā)中,使用這些函數(shù)可以更高效的實(shí)現(xiàn)代碼的功能,有利于我們的開(kāi)發(fā)工作。
香港服務(wù)器選創(chuàng)新互聯(lián),香港虛擬主機(jī)被稱(chēng)為香港虛擬空間/香港網(wǎng)站空間,或者簡(jiǎn)稱(chēng)香港主機(jī)/香港空間。香港虛擬主機(jī)特點(diǎn)是免備案空間開(kāi)通就用, 創(chuàng)新互聯(lián)香港主機(jī)精選cn2+bgp線(xiàn)路訪(fǎng)問(wèn)快、穩(wěn)定!
當(dāng)前文章:LinuxC語(yǔ)言下實(shí)現(xiàn)隨機(jī)數(shù)的生成(linuxc生成隨機(jī)數(shù))
當(dāng)前URL:http://m.fisionsoft.com.cn/article/cdsgjjp.html


咨詢(xún)
建站咨詢(xún)
