while (chosenCus[i] == chosenCus[j]) {
chosenCus[i] = rand() % ROW;
}
僅與最後一個已生成數比較,無法保證與所有前序數不同。
std::unordered_set s;
while (s.size() < CUS) {
s.insert(rand() % ROW);
}
std::vector result(s.begin(), s.end());
std::vector pool(ROW);
std::iota(pool.begin(), pool.end(), 0); // 0..ROW-1
std::shuffle(pool.begin(), pool.end(), std::mt19937{std::random_device{}()});
pool.resize(CUS); // 取前 CUS 個
<random> 替代 rand(),質量更高