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