隨機不同的數

2022-08-03 08:00:15 字數 677 閱讀 3368

需要從乙個原始資料源(長度m,每個數不同)裡隨機出n個不同的數(n<=m)

1     vectorrand_num_src;

2for (int i = 1; i <= 20; ++i)36

7int m = (int

)rand_num_src.size();

8int n = 10;

寫法一:

每隨機出乙個新的數,需要跟已經隨機出來的數作比較,來保證每個數不同。但是while(true)始終是個危險的寫法。

1     vectorindex_1;

2for (int i = 0; i < n; ++i)

3

15}

16if (!sign)

1721

}22 }

寫法二:

用乙個新的vector記錄資料來源,隨機出乙個數,則把它從這個vector中去掉。下一次從這個新的vector中隨機,這樣同樣保證每個數不同。

1     vectorindex_2;

2 vectorrandom_list;34

for (int i = 0; i < m; ++i)58

9for (int i = 0; i < n; ++i)

10

如何讓Fortran生成不同的隨機數

用fortran生成隨機數的方法很簡單,就是 call random seed call random number rd 生成隨機數組可以這樣 do k 1,10 call random seed call random number rd x k rd do something end do 但...

rand 產生隨機數 及其和clock 的不同

首先我們要對rand srand有個總體的看法 srand初始化隨機種子,rand產生隨機數。定義函式 int rand void 函式說明 因為rand的內部實現是用線性同餘法做的,他不是真的隨機數,只不過是因為其週期特別長,所以有一定的範圍裡可看成是隨機的,rand 會返回一隨機數值,範圍在0至...

如何得到多個不同的隨機數 洗牌演算法

先來思考乙個問題 有乙個大小為 100 的陣列,裡面的元素是從 1 到 100 按順序排列,怎樣隨機的從裡面選擇 1 個數?最簡單的方法是利用系統的方法math.random 100,這樣就可以拿到乙個 0 到 99 的隨機數,然後去陣列找對應的位置就即可。接下來在思考乙個問題 有乙個大小為100的...