summaryrefslogtreecommitdiff
path: root/exp_0702.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'exp_0702.cpp')
-rw-r--r--exp_0702.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/exp_0702.cpp b/exp_0702.cpp
new file mode 100644
index 0000000..1c74d0a
--- /dev/null
+++ b/exp_0702.cpp
@@ -0,0 +1,34 @@
+#include <algorithm>
+#include <cassert>
+#include <cmath>
+#include <cstdio>
+#include <vector>
+
+constexpr size_t length = 1048576;
+std::vector<unsigned long long> original_vector;
+
+long double finite_population_cdf(long double x) {
+ auto it = upper_bound(original_vector.begin(), original_vector.end(), x);
+ return (long double)(it - original_vector.begin()) / original_vector.size();
+}
+
+int main() {
+
+ assert((length & 1) == 0);
+ assert(length > 1024);
+
+ FILE *file = fopen("normal_distribution.txt", "r");
+ assert(file);
+ for (long long i; fscanf(file, "%lld ", &i) != EOF;
+ original_vector.push_back(i))
+ ;
+ fclose(file);
+
+ assert(original_vector.size() == length);
+
+ std::sort(original_vector.begin(), original_vector.end());
+
+ for (int i = length / 1024 - 1; i < length; i += (length / 1024)) {
+ printf("%Lf\n", finite_population_cdf(original_vector[i]));
+ }
+} \ No newline at end of file