續之前寫過的隨機數。之前n和k要相隔不大的情況下會產生碰撞,導致程式鎖死。
看了程式設計珠璣的課後的答案,改進了一下。
具體思路是定義乙個陣列,並遞增賦值。
再設定隨機數種子,產生隨機數。
並不是直接放入陣列中。而是將產生的隨機數作為下標即a[i + rand() % (n - i)]與a[i]交換位置。
我自己做了乙個測試。
程式**如下。
#include
#include
#include
#include
#include
#include
using namespace std;
int n = 99999;
int k = 80000;
#define max 100000
void swap(int *a, int *b)
void produce(int *a, int n)
srand((int)time(0));
//下面的語句用於產生n個不同的隨機數,存於陣列的0到n-1位中
// i + rand() % (n - i)產生乙個範圍i到n的隨機數
//那麼將這個下標的陣列資料和以i為下標的陣列資料swap肯定不重複
for (i = 0; i < n; i++)
}int main()
隨機數練習
構造乙個大小為 100 共 100 個數 的隨機 0 1 序列,也就是乙個只含 0 1 的陣列,要求 0 出現的概率為 1 3,1 出現的概率為 2 3,然後將該序列繪製出來,並列印出該序列中 0 的個數與 1 的個數。定義從均勻分布中獲取隨機數的函式 defget uniform random n...
Python練習2 隨機數產生
或者優惠券 使用 python 如何生成 200 個啟用碼 或者優惠券 這道題主要用來熟悉python的隨機函式,用到了random模組,大家可以參考python中的random模組 至於做題中遇到的坑,原始檔在命名的時候用了random,導致使用random模組的函式時一直執行錯誤,python中...
Python練習2 隨機數產生
或者優惠券 使用 python 如何生成 200 個啟用碼 或者優惠券 這道題主要用來熟悉python的隨機函式,用到了random模組,大家可以參考python中的random模組 至於做題中遇到的坑,原始檔在命名的時候用了random,導致使用random模組的函式時一直執行錯誤,python中...