C 下陣列隨機shuffle的方法

2021-07-11 05:47:14 字數 769 閱讀 6415

最近在linux下用c++做實驗,需要在1到n之間多次均勻隨機選擇m個元素(m

1)定義大小為n的陣列,且陣列元素即為序號0,1,2,...,n-a。

2)對陣列進行shuffle操作,打亂陣列元素的順序。

3)取陣列的前m個樣本。

其中陣列的shuffle操作如下:

// shuffle algorithm example

#include // std::cout

#include // std::shuffle

#include // std::array

#include // std::default_random_engine

#include // std::chrono::system_clock

int main () ;

// obtain a time-based seed:

unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();

shuffle (foo.begin(), foo.end(), std::default_random_engine(seed));

std::cout << "shuffled elements:";

for (int& x: foo) std::cout << ' ' << x;

std::cout << '\n';

return 0;

}

陣列隨機shuffle方法

在python中我們會經常看到shuffle的隨機排列函式,其可以將列表中的內容進行隨機排列,但在c 中卻需要自己去實現這樣功能的函式 c 0x之前 在c 0x之後這樣的功能函式在標準庫中已有對應的提供 std shuffle。下面就對該函式做具體的介紹 template void shuffle ...

C 陣列 隨機 排序

int arrint new int 100 for int i 0 i 100 i arrint arrint.orderby c guid.newguid toarray foreach var item in arrint console.readkey 反編譯後 int arrint new...

c語言生成隨機數 組

int rand void 根據乙個數值按照某個公式推算出來的,這個數值稱之為 種子 隨機生成乙個位於 0 rand max 之間的整數。rand max它的值至少為 32767。種子在每次啟動計算機時是隨機的,但是一旦計算機啟動以後它就不再變化了,根據公式推算出來的結果 也就是生成的隨機數 就是固...