/* * This file is part of JGAP. * * JGAP offers a dual license model containing the LGPL as well as the MPL. * * For licensing information please see the file license.txt included with JGAP * or have a look at the top of class org.jgap.Chromosome which representatively * includes the JGAP license policy applicable for any file delivered with JGAP. */ package examples.supergene; /** * Solve the change problem using force method. This class was used to * verify if the solution exists in general. * * @author Audrius Meskauskas */ public final class Force { /** String containing the CVS revision. Read out via reflection!*/ private final static String CVS_REVISION = "$Revision: 1.2 $"; public static boolean REPORT_ENABLED = true; private Force() { } /** * Check the existence of a soulution. * * @param a_sum the sum needed * @return true if the change can be expressed in coins, satisfying * pennies mod 2 = nickels mod 2 * * @author Audrius Meskauskas */ public static boolean solve(int a_sum) { for (int q = 0; q < 4; q++) { for (int d = 0; d < 10; d++) { for (int n = 0; n < 20; n++) { for (int p = 0; p < 99; p++) { if (AbstractSupergeneTest.amountOfChange(q, d, n, p) == a_sum) { if (p % 2 == n % 2) { if (REPORT_ENABLED) { System.out.println("Force " + a_sum + ": " + q + " quarters " + d + " dimes " + n + " nickels " + p + " pennies"); } return true; } } } } } } if (REPORT_ENABLED) { System.out.println("Force " + a_sum + ": no solution"); } return false; } /** * Test the Force method itself. * * @param args ignored */ public static void main(String[] args) { for (int i = 1; i <= 100; i++) { solve(i); } } }