利用基本的random()函數來生成一個範圍在[m, n]之間的隨機整數。這可以通過先生成一個[0, 1)範圍內的浮點數,然後將這個浮點數擴展到[m, n]範圍的整數。下面是一個使用C++實現的示例:
cpp
Copy code
#include <iostream>
using namespace std;
// 假設的 random() 函數
float random() {
// 這裡應該是隨機數生成的實現,但為了示例,我們只返回固定的值
// 在實際應用中,這會返回一個[0, 1)範圍內的浮點數
return 0.5; // 僅作為示例
}
// RND 函數,返回一個[m, n]範圍內的隨機整數
int RND(int m, int n) {
// 使用 random() 生成[0, 1)範圍的浮點數,然後擴展到[m, n]範圍
return m + static_cast<int>(random() * (n - m + 1));
}
int main() {
// 測試 RND 函數
int k = RND(10, 20);
cout << "Random number between 10 and 20: " << k << endl;
return 0;
}
這段代碼中,RND函數首先調用random()函數獲取一個[0, 1)範圍內的浮點數。然後,這個浮點數被擴展到[m, n]範圍內的一個值。static_cast<int>()用於將浮點數轉換成整數。因為random() * (n - m + 1)生成的是一個[0, n-m+1)範圍內的浮點數,加上m後的範圍就變成了[m, n+1),最後通過轉換成整數,範圍變為[m, n]。