From c8115fffa5df971b16746c6c98a3a05859e91587 Mon Sep 17 00:00:00 2001 From: TheTrouper <93684527+thetrouper@users.noreply.github.com> Date: Thu, 2 Nov 2023 16:39:40 -0500 Subject: [PATCH 1/2] Complexers class added + cleanup --- .../java/me/trouper/Functions/Complexers.java | 33 +++++++++++++ src/main/java/me/trouper/Functions/Eval.java | 11 +++++ src/main/java/me/trouper/Main.java | 49 +++---------------- 3 files changed, 52 insertions(+), 41 deletions(-) create mode 100644 src/main/java/me/trouper/Functions/Complexers.java create mode 100644 src/main/java/me/trouper/Functions/Eval.java diff --git a/src/main/java/me/trouper/Functions/Complexers.java b/src/main/java/me/trouper/Functions/Complexers.java new file mode 100644 index 0000000..479f0af --- /dev/null +++ b/src/main/java/me/trouper/Functions/Complexers.java @@ -0,0 +1,33 @@ +package me.trouper.Functions; + +import java.util.Random; + +import static me.trouper.Functions.Eval.eval; + +public class Complexers { + public static String divide(int i) { + Random random = new Random(); + int factor = random.nextInt(9)+1; + int doubled = i * factor; + String result = "(" + doubled + "/" + factor + ")"; + + if (eval(result) == i) { + return result; + } + return "(" + i + ")"; + } + + public static String root(int i) { + int squared = (int) Math.pow(i,2); + String result = "sqrt(" + squared + ")"; + if (eval(result) == i){ + return result; + } + return "(" + i + ")"; + } + + /*public static String power(int i) { + int + } + */ +} diff --git a/src/main/java/me/trouper/Functions/Eval.java b/src/main/java/me/trouper/Functions/Eval.java new file mode 100644 index 0000000..1a30ee5 --- /dev/null +++ b/src/main/java/me/trouper/Functions/Eval.java @@ -0,0 +1,11 @@ +package me.trouper.Functions; + +import net.objecthunter.exp4j.Expression; +import net.objecthunter.exp4j.ExpressionBuilder; + +public class Eval { + public static double eval(String expression) { + Expression exp = new ExpressionBuilder(expression).build(); + return exp.evaluate(); + } +} diff --git a/src/main/java/me/trouper/Main.java b/src/main/java/me/trouper/Main.java index 979eb7f..ebc1a5b 100644 --- a/src/main/java/me/trouper/Main.java +++ b/src/main/java/me/trouper/Main.java @@ -1,10 +1,12 @@ package me.trouper; -import net.objecthunter.exp4j.Expression; -import net.objecthunter.exp4j.ExpressionBuilder; + +import me.trouper.Functions.Complexers; import java.util.Random; import java.util.Scanner; +import static me.trouper.Functions.Eval.eval; + public class Main { public static void main(String[] args) { @@ -43,19 +45,15 @@ public class Main { while (eval(expression.toString()) != target) { System.out.println("Current: " + eval(expression.toString())); int ri = random.nextInt(9)+1; + int op = random.nextInt(2); System.out.println("Random: " + ri); if (eval(expression.toString()) < target) { - int squared = (int) Math.pow(ri,2); - String back = "sqrt(" + squared + ")"; - expression.append("+").append(back); + expression.append("+").append((op == 0) ? Complexers.divide(ri) : Complexers.root(ri)); System.out.println("Less than"); } if (eval(expression.toString()) > target) { - int f = random.nextInt(9)+1; - int doubled = ri * f; - String back = "(" + doubled + "/" + f +")"; - expression.insert(0,"("); - expression.append(")").append("-").append(back); + expression.insert(0,"(").append(")"); + expression.append("-").append((op == 0) ? Complexers.divide(ri) : Complexers.root(ri)); System.out.println("Greater than"); } } @@ -66,36 +64,5 @@ public class Main { return expression.toString(); } - public static double eval(String expression) { - Expression exp = new ExpressionBuilder(expression).build(); - return exp.evaluate(); - } -/* - public static void main(String[] args) { - Scanner reader = new Scanner(System.in); - while (true) { - System.out.println("Enter a target Integer: "); - if (reader.hasNextInt()) { - int target = reader.nextInt(); - String obfuscatedExpression = generateObfuscatedExpression(target); - Expression exp = new ExpressionBuilder(obfuscatedExpression).build(); - if (exp.evaluate() == target) { - System.out.println("Target Integer: " + target + "\n" + - "Output is Verified Correct!\n" + - "Expression: " + obfuscatedExpression); - } else { - System.out.println("Target Integer: " + target + "\n" + - "INCORRECT OUTPUT GENERATED!\n" + - "Expression: " + obfuscatedExpression); - } - } else { - System.out.println("Exiting the program."); - break; - } - } - - reader.close(); - } - */ } From 078baefbf6d72b8cfbf7284443d8ca8a5a18941f Mon Sep 17 00:00:00 2001 From: obvWolf Date: Thu, 2 Nov 2023 14:48:17 -0500 Subject: [PATCH 2/2] Added more verbose + statistics --- .idea/gradle.xml | 2 +- .idea/misc.xml | 4 + build.gradle | 7 +- .../java/me/trouper/Functions/Complexers.java | 20 +++-- src/main/java/me/trouper/Functions/Eval.java | 10 +++ src/main/java/me/trouper/Main.java | 87 ++++++++++++++++--- 6 files changed, 109 insertions(+), 21 deletions(-) diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 7d3b3e8..37ac4c0 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -5,7 +5,7 @@