diff options
Diffstat (limited to 'expt_0618_2.cpp')
| -rw-r--r-- | expt_0618_2.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/expt_0618_2.cpp b/expt_0618_2.cpp new file mode 100644 index 0000000..4c104ad --- /dev/null +++ b/expt_0618_2.cpp @@ -0,0 +1,33 @@ +#include <iostream> +#include <random> + +constexpr size_t MAX_LEVEL = 32; + +void generateRandomLevel(std::vector<unsigned int> &v, long run_times) { + // auto levels = new int[size]; + std::random_device randomDevice; + std::mt19937 randomEngine(randomDevice()); + std::geometric_distribution<> distribution(0.5); + for (int i = 0; i < run_times; i++) { + v[(int)std::min(MAX_LEVEL, (size_t)distribution(randomEngine))]++; + } +} + +int main(int argc, char const *argv[]) { + + auto run_times = 65536L; + + if (argc >= 2) { + run_times = strtol(argv[1], nullptr, 10); + } + + std::vector<unsigned int> result(MAX_LEVEL + 3); + generateRandomLevel(result, run_times); + + for (int i = 0; i < 32; i++) { + if (!result[i]) { + continue; + } + printf("%d: %d\n", i, result[i]); + } +}
\ No newline at end of file |
