在VC中設計到隨機數有兩個函數
成都創新互聯公司專注于納雍企業網站建設,成都響應式網站建設公司,購物商城網站建設。納雍網站建設公司,為納雍等地區提供建站服務。全流程按需策劃,專業設計,全程項目跟蹤,成都創新互聯公司專業和態度為您提供的服務
srand()
and
rand()
srand()
的作用是是一個種子,提供每次獲得隨機數的基數而已,rand()根據種子而產生隨機數
注意
1:srand()
里的值必須是動態變化的,否則得到的隨機數就是一個固定數
2:其實可以不用寫srand()
,只用rand()就可以了,省事,簡單,例子如下
如果我們想得到一個
0-60的隨機數那么可以寫成
int
i;
i=rand()%60;
就可以了。
當然最好有個統一的標注如下:
int
i;
srand((unsigned)time(
NULL
));
i=rand()%60;
這樣就OK了。
rand函數也是調用dos的時鐘,進行的偽隨機函數.
你也可以使用時鐘來模擬隨機函數.
可以試用gettime這個函數:
long int MyRand(int x)
{
struct time t1,t2,t3;
gettime(t1);
int y1=t1.ti_hund;//取1/100s作為基數
gettime(t2);
int y2=t2.ti_hund;//取1/100s作為基數
gettime(t3);
int y3=t3.ti_hund;//取1/100s作為基數
return y1*y2*y3;//產生的隨機數0~99*99*99
}
1、首先打開Visual stdio 2019,依次點擊文件,新建,項目新建以一個空白的項目:
2、新建新項目以后,右鍵點擊左邊的源文件,選擇添加,點擊添加項:
3、選擇cpp,并將下方的擴展名改為.c,然后點擊確定:
4、接下來就可以用編譯器編譯,使用rand()函數產生C語言的隨機數,需要加入stdlib.h和time.h在表頭,rand()函數需要給srand()函數提供一個參數,不然系統會給定一個默認的參數,如果參數為一任意的常量的話,得到的也是偽隨機數:
4、按ctrl+F5就可以運行程序了,在彈出的窗口中就會看到得到的所有隨機數了:
c語言中產生隨機數的相關函數主要包括srand和rand函數,兩者配合生成隨機數據,測試代碼如下,
#includestdio.h
#include stdlib.h
#include time.h
void main()
{
int i=0,j=0;
int p[5][5]={0};
srand(time(NULL));
for(i=0;i5;i++)
for(j=0;j5;j++)
p[i][j]=rand()%100+1;//產生1-100的隨機數存入數組p中
printf("二維數組p為:\n");
for(i=0;i5;i++)
{
for(j=0;j5;j++)
printf("%d\t",p[i][j]);
printf("\n");
}
}
一般srand和rand配合使用產生偽隨機數序列。rand函數在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次調用rand函數生成的偽隨機數序列都是一樣的。srand(unsigned seed)通過參數seed改變系統提供的種子值,從而可以使得每次調用rand函數生成的偽隨機數序列不同,從而實現真正意義上的“隨機”。通常可以利用系統時間來改變系統的種子值,即srand(time(NULL)),可以為rand函數提供不同的種子值,進而產生不同的隨機數序列。
你好!
完整的代碼,紅圈處就是從上面100個數字中抽取到的數字:
#include?stdio.h
#includestdlib.h??????????????????//生成隨機數用?
#includetime.h????????????????????//利用時間生成種子?
#includemath.h????????????????????
int?main()
{
int?i;
??int?a[100];
srand(?time(NULL)?);?????????//生成種子?
for(i=0;i100;i++)
{
a[i]=rand()%1000+1000;??????//生成一個小于1000的隨機數
???//然后加1000,變成?1000?-?2000之間的數?
printf("%d??",a[i]);???????//打印?
}
i=rand()%100;??????????????//隨機抽取其中的一個數?
printf("\n抽取到的是:%d\n",a[i]);//打印?
return?0;?
}
網站名稱:隨機數創建函數c語言 c語言產生隨機數的函數
網頁路徑:http://m.kartarina.com/article28/hiidcp.html
成都網站建設公司_創新互聯,為您提供建站公司、企業建站、電子商務、網站制作、品牌網站建設、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯