From e8c03d0357f2197aefe8da505d4406eb9700322b Mon Sep 17 00:00:00 2001 From: TienNM Date: Sun, 30 Jul 2023 09:49:38 +0700 Subject: [PATCH] (Add) random until match n times strategy --- ...5GenerateUntilMatchPreviousCaseNTimes.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/main/java/dev/miti99/lotterygenerator/mega/Mega645GenerateUntilMatchPreviousCaseNTimes.java diff --git a/src/main/java/dev/miti99/lotterygenerator/mega/Mega645GenerateUntilMatchPreviousCaseNTimes.java b/src/main/java/dev/miti99/lotterygenerator/mega/Mega645GenerateUntilMatchPreviousCaseNTimes.java new file mode 100644 index 0000000..3a40262 --- /dev/null +++ b/src/main/java/dev/miti99/lotterygenerator/mega/Mega645GenerateUntilMatchPreviousCaseNTimes.java @@ -0,0 +1,33 @@ +package dev.miti99.lotterygenerator.mega; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +public class Mega645GenerateUntilMatchPreviousCaseNTimes { + + private final Map, Integer> history = new HashMap<>(); + + public static void main(String[] args) { + var generator = new Mega645GenerateUntilMatchPreviousCaseNTimes(); + var result = generator.generate(); + System.out.println(result); + } + + public Set generate() { + history.clear(); + var generator = new Mega645Generator(); + Set numbers; + int count = 0; + while (true) { + numbers = generator.generateNumbers(6); + var times = history.merge(numbers, 1, Integer::sum); + System.out.printf("%d. %s %d\n", count, numbers, times); + if (times == 3) { + break; + } + count++; + } + return numbers; + } +}