Random algorithms.
More...
|
template<typename T , typename Container = std::unordered_set<T>, typename RandomGenerator > |
Container | pick_k (T a, T b, T k, RandomGenerator &&gen) |
| pick k from int range [a, b] (no duplicates) More...
|
|
template<typename T , typename Container = std::vector<T>> |
Container | random_sample (T a, T b, T k, std::mt19937 &&gen=std::mt19937(std::random_device{}())) |
| get shuffled random sample in [a, b], size k More...
|
|
template<typename T , typename Container = std::vector<T>, typename Generator > |
Container | random_sample (T a, T b, T k, Generator &&gen) |
|
◆ pick_k()
Container vccc::pick_k |
( |
T |
a, |
|
|
T |
b, |
|
|
T |
k, |
|
|
RandomGenerator && |
gen |
|
) |
| |
Time complexity is \(O(n)\)
- Template Parameters
-
T | type |
Container | = std::unordered_set<T> |
- Parameters
-
a | min value |
b | max value |
k | pick count |
gen | random generator |
- Returns
- container that has picked number
◆ random_sample() [1/2]
Container vccc::random_sample |
( |
T |
a, |
|
|
T |
b, |
|
|
T |
k, |
|
|
Generator && |
gen |
|
) |
| |
◆ random_sample() [2/2]
Container vccc::random_sample |
( |
T |
a, |
|
|
T |
b, |
|
|
T |
k, |
|
|
std::mt19937 && |
gen = std::mt19937(std::random_device{}()) |
|
) |
| |
Time complexity is \(O(n)\)
- Template Parameters
-
T | type |
Container | return type |
- Parameters
-
a | min value |
b | max value |
k | sample size |
gen | random generator |
- Returns
- container that has samples