如何建立乙個隨機數
所以要使用這二個函式必須包含標頭檔案
int rand(void);
void srand (unsigned int n);
使用方法:
rand返回0-rand_max之間的偽隨機數,rand_max定義在srdlib.h標頭檔案中,值等於32767或者更大srand()函式使用自變數n作為種子,用來初始化隨機數產生器。只要把相同的種子傳入srand(),然後呼叫rand()時,就會產生相同的隨機數序列。因此,我們可以把時間作為srand()函式的種子,就可以避免重複的發生。如果,呼叫rand()之前沒有先呼叫srand(),就和事先呼叫srand(1)所產生的結果一樣。
for (int i=0; i<10; i++)
每次執行都將輸出:1 7 4 0 9 4 8 8 2 4
srand(1);
for (int i=0; i<10; i++)
每次執行都將輸出:1 7 4 0 9 4 8 8 2 4
例2的輸出結果與例1是完全一樣的。
srand(8);
for (int i=0; i<10; i++)
每次執行都將輸出:4 0 1 3 5 3 7 7 1 5
該程式取得的隨機值也是在[0,10)之間,與srand(1)所取得的值不同,但是每次執行程式的結果都相同。
srand((unsigned)time(null));
for (int i=0; i<10; i++)
該程式每次執行結果都不一樣,因為每次啟動程式的時間都不同。另外需要注意的是,使用time()函式前必須包含標頭檔案time.h。
注意事項
求一定範圍內的隨機數。
如要取[0,10)之間的隨機整數,需將rand()的返回值與10求模。
randnumber = rand() % 10;
那麼,如果取的值不是從0開始呢?你只需要記住乙個通用的公式。
要取[a,b)之間的隨機整數(包括a,但不包括b),使用:
(rand() % (b - a)) + a
偽隨機浮點數。
要取得0~1之間的浮點數,可以用:
rand() / (double)(rand_max)
如果想取更大範圍的隨機浮點數,比如0~100,可以採用如下方法:
rand() /((double)(rand_max)/100)
其他情況,以此類推,這裡不作詳細說明。
當然,本文取偽隨機浮點數的方法只是用來說明函式的使用辦法,你可以採用更好的方法來實現。
程式1:輸入乙個整數a,再輸入兩個整數p1,p2(p1,p2<32),將該整數的二進位制表示方法中從右端開始的p1到p2位取反後輸出
#include #include int main()
for(i=p1-1;i>i)&1));
}return 0;
}
程式2:有n個人圍成一圈,順序排號,從第乙個開始報數(從1到3報數),凡報到3的人退出圈子,問最後最後留下的是原來第幾號的那位.
#include int main()
; //0 存在 1退出
printf("please enter how many people range 0 to 1000:");
scanf("%d",&people);
for(k=0;k=people)j=0;
if (a[j]==1)i--;
if(i==3)
}} for (k=0;k程式3:設計乙個洗牌發牌的程式
#include #include int main()
a[52]=14;
a[53]=15;
for (i=0;i<53;i++)
}} for (i=0;i<18;i++)
for (i=18;i<36;i++)
for (i=36;i<54;i++)
//for (i=0;i<54;i++)
// for (i=0;i<18;i++)
printf("\n");
for (i=0;i<18;i++)
printf("\n");
for (i=0;i<18;i++)
printf("\n");
return 0;
}
學習筆記 Linux學習
echo i am whoami 反引號裡的內容會被當做命令執行 echo the cpu in my pc has cat proc cpuinfo grep c processor cores 等價於反引號 a 10 定義乙個變數,等號兩邊不能有空格 echo a的值為 a a的值為10 ech...
linux學習筆記
開機流程簡介 1 載入 bios 的硬體資訊,並取得第乙個開機裝置的代號 2 讀取第乙個開機裝置的 mbr 的 boot loader 亦即是 lilo,grub,spfdisk 等等 的開機資訊 3 載入 kernel 作業系統核心資訊,kernel 開始解壓縮,並且嘗試驅動所有硬體裝置 4 ke...
Linux 學習筆記
配置 telnet 服務 vi etc hosts.deny 在all all 行前加 號注釋,登出該行。新增一行all all 用 登出disable yes,或者修改為 disble no vi etc pam.d login 在auth required lib security pam se...