Linux學習筆記

2021-09-10 06:35:09 字數 2170 閱讀 5604

如何建立乙個隨機數

所以要使用這二個函式必須包含標頭檔案

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...