c語言如何產生60到100的隨機數 C語言產生60到100的隨機數算法
在C語言中,想要生成60到100之間的隨機數可以使用rand()函數或者自定義算法兩種方式。下面將分別介紹這兩種方法。 1. 使用rand()函數生成隨機數 rand()函數是C語言標準庫中提
在C語言中,想要生成60到100之間的隨機數可以使用rand()函數或者自定義算法兩種方式。下面將分別介紹這兩種方法。
1. 使用rand()函數生成隨機數
rand()函數是C語言標準庫中提供的隨機數生成函數,它可以生成0到RAND_MAX之間的偽隨機數。要生成指定范圍內的隨機數,我們可以使用取余運算和加法來進行調整。
具體的代碼如下:
#include lt;stdio.hgt;
#include lt;stdlib.hgt;
#include lt;time.hgt;
int main() {
int lower 60, upper 100;
int num upper - lower 1;
srand(time(0)); // 設置種子
for (int i 0; i lt; 10; i ) {
int rand_num rand() % num lower;
printf("%d
", rand_num);
}
return 0;
}
上述代碼中,使用srand()函數設置隨機數生成器的種子為當前時間,以增加隨機性。然后通過循環調用rand()函數生成指定范圍內的隨機數,并使用printf()函數打印出來。
2. 使用自定義算法生成隨機數
除了使用rand()函數,我們還可以通過自定義算法來生成指定范圍內的隨機數。一個簡單的方法是通過計算當前時間的毫秒數,并進行一系列的位運算和取余操作。
具體的代碼如下:
#include lt;stdio.hgt;
#include lt;sys/time.hgt;
int main() {
int lower 60, upper 100;
int num upper - lower 1;
struct timeval tv;
gettimeofday(tv, NULL);
unsigned long long milliseconds_since_epoch
(unsigned long long)(_sec) * 1000
(unsigned long long)(_usec) / 1000;
unsigned long long rand_num
(milliseconds_since_epoch ^ 0x5DEECE66DULL) % num lower;
printf("%llu
", rand_num);
return 0;
}
上述代碼中,我們使用gettimeofday()函數獲取當前時間的毫秒數,并將其與一個常數異或運算。然后通過取余操作和加法調整生成的隨機數,最終打印出來。
通過上述兩種方法,我們可以在C語言中生成60到100之間的隨機數。根據具體的需求和情況,選擇合適的方法來使用。
總結:
本文詳細介紹了C語言中生成60到100之間的隨機數的方法,包括使用rand()函數和自定義算法兩種方式。通過使用rand()函數和自定義算法,我們可以靈活地生成指定范圍內的隨機數,便于應用于不同場景中。