新聞中心
linux系統(tǒng)是一款功能強(qiáng)大的操作系統(tǒng),用C編程語(yǔ)言在Linux中經(jīng)常要生成隨機(jī)數(shù),以實(shí)現(xiàn)不同的應(yīng)用。隨機(jī)數(shù)可以用于算法設(shè)計(jì)、模擬、密碼學(xué)、密碼運(yùn)算以及計(jì)算機(jī)安全等領(lǐng)域中。下面介紹一些在Linux C程序中生成隨機(jī)數(shù)的方法:

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的通化網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
1、 使用rand函數(shù)。rand函數(shù)是標(biāo)準(zhǔn)C庫(kù)函數(shù),也就是說(shuō)在Linux中可以使用它來(lái)生成隨機(jī)數(shù),假設(shè)要生成1.0~100.0范圍內(nèi)的隨機(jī)數(shù),可以使用下面的代碼:
#include
#include
int main()
{
//設(shè)置隨機(jī)數(shù)種子
srand((unsigned)time(NULL));
//生成 隨機(jī)數(shù)
double r;
r = (double)(rand()%1000)/10+1.0;
printf("r = %.1f\n",r);
return 0;
}
2、使用rand_r函數(shù)。rand_r函數(shù)是一種線程安全的隨機(jī)數(shù)生成函數(shù),可以在多線程環(huán)境中使用,假設(shè)要生成1~100范圍內(nèi)的隨機(jī)數(shù),可以使用下面的代碼:
#include
#include
int main()
{
unsigned int seed;
seed = (unsigned int)time(NULL);
int result;
//生成隨機(jī)數(shù)
result = rand_r(&seed)%100+1;
printf("result = %d\n", result);
return 0;
}
3、使用urandom函數(shù)。urandom函數(shù)是在/dev/urandom文件中讀取的一種偽隨機(jī)數(shù)生成函數(shù),假設(shè)要生成0~15范圍的隨機(jī)數(shù),可以使用下面的代碼:
#include
#include
int main()
{
int fd;
fd = open("/dev/urandom", O_RDONLY);
if (fd
{
printf("Open Faile\n");
}
else
{
printf("fd = %d\n", fd);
int result;
read(fd, &result, 3);
result = result%16;
printf("result = %d\n", result);
}
close(fd);
return 0;
}
以上介紹的是在Linux C程序中生成隨機(jī)數(shù)的幾種不同方法,可以根據(jù)實(shí)際需要選擇合適的方法來(lái)實(shí)現(xiàn)以及達(dá)到安全可靠的目的。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。
名稱欄目:LinuxC代碼中生成隨機(jī)數(shù)的方法(linuxc取隨機(jī)數(shù))
路徑分享:http://www.5511xx.com/article/dhsegic.html


咨詢
建站咨詢
