From 447d7d7a363b53b81cf21a30b6765d9e3501484c Mon Sep 17 00:00:00 2001 From: KunoiSayami Date: Fri, 24 Jun 2022 15:08:03 +0800 Subject: feat(script): Add experiment3 Signed-off-by: KunoiSayami --- exp_3.cpp | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 exp_3.cpp (limited to 'exp_3.cpp') diff --git a/exp_3.cpp b/exp_3.cpp new file mode 100644 index 0000000..4e6f8b0 --- /dev/null +++ b/exp_3.cpp @@ -0,0 +1,54 @@ +#include +#include +#include +#include +#include + +constexpr size_t length = 1048576; + +int main() { + + std::vector vector1, vector2; + + std::set set1, set2; + + FILE *file = fopen("normal_distribution.txt", "r"); + for (long long i; fscanf(file, "%lld ", &i) != EOF; + vector1.push_back(i), set1.insert(i)) + ; + fclose(file); + + assert(vector1.size() == set1.size()); + assert(vector1.size() == length); + + auto it = vector1.begin(); + for (int i = 1; i <= 1000; i++) { + auto element = *it; + auto ret = set2.insert(element); + if (ret.second) { + vector2.push_back(element); + // printf("%lld\n", element); + } + it++; + } + + assert(vector2.size() == 1000); + + auto it2 = set2.begin(); + int cnt = 0; + for (long long it1 : set1) { + while (it1 > *it2 && it2 != set2.end()) + it2++, cnt++; + // printf("%d ", cnt); + } + + it2 = set1.begin(); + cnt = 0; + for (long long it1 : set2) { + while (it1 > *it2 && it2 != set1.end()) + it2++, cnt++; + printf("%d ", cnt); + } + puts(""); + return 0; +} \ No newline at end of file -- cgit v1.3.1