summaryrefslogtreecommitdiff
path: root/expt_0618_2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'expt_0618_2.cpp')
-rw-r--r--expt_0618_2.cpp33
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