B4J Tutorial Google OR-TOOLS (Cryptarithmetic Puzzles)

This is a B4J example (using inline Java Code) of using Google OR-TOOLS to solve Cryptarithmetic Puzzles. It is only set up for "CP + IS + FUN = TRUE"

It generates 72 possible solutions.

You need the following Jars in your B4J library folder:
B4X:
#AdditionalJar: ortools-java-9.14.6206
#AdditionalJar: com.sun.jna_5.13.0
#AdditionalJar: protobuf-java-4.31.1

See post #3 is this thread for how to set it up:


Result when running the attached B4J project:

Result:
CP + IS + FUN = TRUE
C5P3+I4S6+F9U2N8 = T1R0U2E7 = 53 + 46 + 928 = 1027
C5P3+I4S8+F9U2N6 = T1R0U2E7 = 53 + 48 + 926 = 1027
C5P8+I4S3+F9U2N6 = T1R0U2E7 = 58 + 43 + 926 = 1027
C5P6+I4S3+F9U2N8 = T1R0U2E7 = 56 + 43 + 928 = 1027
C4P6+I5S3+F9U2N8 = T1R0U2E7 = 46 + 53 + 928 = 1027
C4P8+I5S3+F9U2N6 = T1R0U2E7 = 48 + 53 + 926 = 1027
C3P5+I6S4+F9U2N8 = T1R0U2E7 = 35 + 64 + 928 = 1027
C3P4+I6S5+F9U2N8 = T1R0U2E7 = 34 + 65 + 928 = 1027
C3P4+I6S8+F9U2N5 = T1R0U2E7 = 34 + 68 + 925 = 1027
C3P8+I6S4+F9U2N5 = T1R0U2E7 = 38 + 64 + 925 = 1027
C3P8+I6S5+F9U2N4 = T1R0U2E7 = 38 + 65 + 924 = 1027
C3P5+I6S8+F9U2N4 = T1R0U2E7 = 35 + 68 + 924 = 1027
C3P7+I6S2+F9U8N5 = T1R0U8E4 = 37 + 62 + 985 = 1084
C3P5+I6S2+F9U8N7 = T1R0U8E4 = 35 + 62 + 987 = 1084
C6P5+I3S2+F9U8N7 = T1R0U8E4 = 65 + 32 + 987 = 1084
C6P7+I3S2+F9U8N5 = T1R0U8E4 = 67 + 32 + 985 = 1084
C6P8+I3S4+F9U2N5 = T1R0U2E7 = 68 + 34 + 925 = 1027
C6P5+I3S4+F9U2N8 = T1R0U2E7 = 65 + 34 + 928 = 1027
C6P5+I3S8+F9U2N4 = T1R0U2E7 = 65 + 38 + 924 = 1027
C6P8+I3S5+F9U2N4 = T1R0U2E7 = 68 + 35 + 924 = 1027
C7P8+I2S3+F9U6N4 = T1R0U6E5 = 78 + 23 + 964 = 1065
C7P8+I2S3+F9U4N5 = T1R0U4E6 = 78 + 23 + 945 = 1046
C7P5+I2S3+F9U4N8 = T1R0U4E6 = 75 + 23 + 948 = 1046
C7P5+I2S3+F9U8N6 = T1R0U8E4 = 75 + 23 + 986 = 1084
C7P6+I2S3+F9U8N5 = T1R0U8E4 = 76 + 23 + 985 = 1084
C7P4+I2S3+F9U6N8 = T1R0U6E5 = 74 + 23 + 968 = 1065
C7P3+I2S4+F9U6N8 = T1R0U6E5 = 73 + 24 + 968 = 1065
C7P3+I2S5+F9U4N8 = T1R0U4E6 = 73 + 25 + 948 = 1046
C7P3+I2S8+F9U4N5 = T1R0U4E6 = 73 + 28 + 945 = 1046
C7P3+I2S6+F9U8N5 = T1R0U8E4 = 73 + 26 + 985 = 1084
C7P3+I2S5+F9U8N6 = T1R0U8E4 = 73 + 25 + 986 = 1084
C7P3+I2S8+F9U6N4 = T1R0U6E5 = 73 + 28 + 964 = 1065
C7P4+I2S8+F9U6N3 = T1R0U6E5 = 74 + 28 + 963 = 1065
C2P4+I7S8+F9U6N3 = T1R0U6E5 = 24 + 78 + 963 = 1065
C6P4+I3S8+F9U2N5 = T1R0U2E7 = 64 + 38 + 925 = 1027
C6P4+I3S5+F9U2N8 = T1R0U2E7 = 64 + 35 + 928 = 1027
C2P4+I7S3+F9U6N8 = T1R0U6E5 = 24 + 73 + 968 = 1065
C2P3+I7S4+F9U6N8 = T1R0U6E5 = 23 + 74 + 968 = 1065
C2P3+I7S5+F9U4N8 = T1R0U4E6 = 23 + 75 + 948 = 1046
C2P3+I7S5+F9U8N6 = T1R0U8E4 = 23 + 75 + 986 = 1084
C2P3+I7S6+F9U8N5 = T1R0U8E4 = 23 + 76 + 985 = 1084
C2P3+I7S8+F9U4N5 = T1R0U4E6 = 23 + 78 + 945 = 1046
C2P3+I7S8+F9U6N4 = T1R0U6E5 = 23 + 78 + 964 = 1065
C2P8+I7S3+F9U6N4 = T1R0U6E5 = 28 + 73 + 964 = 1065
C2P8+I7S4+F9U6N3 = T1R0U6E5 = 28 + 74 + 963 = 1065
C2P8+I7S5+F9U4N3 = T1R0U4E6 = 28 + 75 + 943 = 1046
C2P5+I7S8+F9U4N3 = T1R0U4E6 = 25 + 78 + 943 = 1046
C2P5+I7S6+F9U8N3 = T1R0U8E4 = 25 + 76 + 983 = 1084
C2P6+I7S5+F9U8N3 = T1R0U8E4 = 26 + 75 + 983 = 1084
C2P6+I7S3+F9U8N5 = T1R0U8E4 = 26 + 73 + 985 = 1084
C2P5+I7S3+F9U8N6 = T1R0U8E4 = 25 + 73 + 986 = 1084
C2P5+I7S3+F9U4N8 = T1R0U4E6 = 25 + 73 + 948 = 1046
C2P8+I7S3+F9U4N5 = T1R0U4E6 = 28 + 73 + 945 = 1046
C3P2+I6S7+F9U8N5 = T1R0U8E4 = 32 + 67 + 985 = 1084
C3P2+I6S5+F9U8N7 = T1R0U8E4 = 32 + 65 + 987 = 1084
C3P7+I6S5+F9U8N2 = T1R0U8E4 = 37 + 65 + 982 = 1084
C3P5+I6S7+F9U8N2 = T1R0U8E4 = 35 + 67 + 982 = 1084
C4P8+I5S6+F9U2N3 = T1R0U2E7 = 48 + 56 + 923 = 1027
C5P8+I4S6+F9U2N3 = T1R0U2E7 = 58 + 46 + 923 = 1027
C5P6+I4S8+F9U2N3 = T1R0U2E7 = 56 + 48 + 923 = 1027
C4P6+I5S8+F9U2N3 = T1R0U2E7 = 46 + 58 + 923 = 1027
C4P3+I5S8+F9U2N6 = T1R0U2E7 = 43 + 58 + 926 = 1027
C4P3+I5S6+F9U2N8 = T1R0U2E7 = 43 + 56 + 928 = 1027
C7P5+I2S8+F9U4N3 = T1R0U4E6 = 75 + 28 + 943 = 1046
C7P8+I2S5+F9U4N3 = T1R0U4E6 = 78 + 25 + 943 = 1046
C7P8+I2S4+F9U6N3 = T1R0U6E5 = 78 + 24 + 963 = 1065
C7P6+I2S5+F9U8N3 = T1R0U8E4 = 76 + 25 + 983 = 1084
C7P5+I2S6+F9U8N3 = T1R0U8E4 = 75 + 26 + 983 = 1084
C6P2+I3S5+F9U8N7 = T1R0U8E4 = 62 + 35 + 987 = 1084
C6P2+I3S7+F9U8N5 = T1R0U8E4 = 62 + 37 + 985 = 1084
C6P5+I3S7+F9U8N2 = T1R0U8E4 = 65 + 37 + 982 = 1084
C6P7+I3S5+F9U8N2 = T1R0U8E4 = 67 + 35 + 982 = 1084

Leaving it up to you to make changes to the B4J project with inline Java code should it be of any use to you.
 

Attachments

  • orToolsCryptarithmetic.zip
    3.4 KB · Views: 39
Top