From 5972d2759a58783bed832da52c50ece240af5090 Mon Sep 17 00:00:00 2001 From: Benoit Seron Date: Mon, 17 Jun 2024 16:54:44 +0200 Subject: [PATCH] preliminary spoofing figures --- spoofing_high_density.png | Bin 0 -> 14969 bytes spoofing_no_collision.png | Bin 0 -> 28802 bytes src/spoofing/spoofing_trials.jl | 75 ++++++++++++++++++++++++++++++++ src/types/partitions.jl | 28 ++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 spoofing_high_density.png create mode 100644 spoofing_no_collision.png diff --git a/spoofing_high_density.png b/spoofing_high_density.png new file mode 100644 index 0000000000000000000000000000000000000000..4f5dd0a9a8cb2cea7c114d601a9ba1de725ddee8 GIT binary patch literal 14969 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 m + error("Number of subsets cannot be greater than the size of the interval") + end + + # Generate `n_subsets - 1` unique random cut points + cut_points = sort(unique(rand(1:(m-1), n_subsets - 1))) + + # Ensure we have exactly `n_subsets - 1` cut points + while length(cut_points) < n_subsets - 1 + new_points = sort(unique(rand(1:(m-1), n_subsets - 1 - length(cut_points)))) + cut_points = sort(unique(vcat(cut_points, new_points))) + end + + # Add the start and end points of the interval + cut_points = [0; cut_points; m] + + # Create the partitions based on the cut points + partitions = [((cut_points[i] + 1):(cut_points[i+1])) for i in 1:n_subsets] + + lengths = [length(partitions[i]) for i in 1:n_subsets] + + try + return partition_from_subset_lengths(lengths) + catch + error("invalid subset: $partitions") + end + end """ equilibrated_partition_vector(m,n_subsets)