C++। विजुअल स्टूडियो 2010अद्वितीय मानों के सेट से एक अद्वितीय यादृच्छिक सबसेट चुनें
मैं एक std::vector
वी एन के अद्वितीय तत्वों (भारी structs) है। एम यादृच्छिक रूप से एम यादृच्छिक, अद्वितीय, तत्व कैसे चुन सकते हैं?
उदा। {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} और मैं तीन लेने ...
- 4, 0, 9
- 0, 7: वी 10 तत्व शामिल हैं , 8
- लेकिन यह नहीं: 0, 5, 5 < --- अद्वितीय नहीं!
एसटीएल को प्राथमिकता दी जाती है। तो, ऐसा कुछ?
std::minstd_rand gen; // linear congruential engine??
std::uniform_int<int> unif(0, v.size() - 1);
gen.seed((unsigned int)time(NULL));
// ...?
// Or is there a good solution using std::random_shuffle for heavy objects?
'अद्वितीय' की अपनी परिभाषा को आम तौर पर '(ड्राइंग) प्रतिस्थापन के बिना' में जाना जाता है –