Skip to content

Instantly share code, notes, and snippets.

@first087
Last active August 22, 2019 04:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save first087/1a29d9bded438724ecf89b492e47388d to your computer and use it in GitHub Desktop.
Save first087/1a29d9bded438724ecf89b492e47388d to your computer and use it in GitHub Desktop.
โจทย์เลข ป.4
fun calc() {
val ans = mutableListOf<Double>()
do {
val random8 = mutableListOf<Int>()
for (i in 1..8) {
random8.add(Random.nextInt(0, 9 + 1))
}
fun charToRandomNumber(ch: Char) = random8[ch.toByte() - 65]
fun transformDigit(digit: Int, ch: Char) = 10.0.pow(digit - 1) * charToRandomNumber(ch)
fun strToNumber(str: String) = str.toList()
.mapIndexed { index, ch -> transformDigit(4 - index, ch) }
.sum()
val input = arrayListOf("AFBF", "CGHB", "DAFG", "AEAB")
val output = "BCDC"
val actual = strToNumber(input[0]) + strToNumber(input[1]) + strToNumber(input[2]) + strToNumber(input[3])
val expected = strToNumber(output)
val matched = actual == expected
if (matched && !ans.contains(actual)) {
ans.add(actual)
val a2h = random8.mapIndexed { index, i -> "${(index + 65).toChar()}=$i" }.joinToString(", ")
println("Ans#${ans.size} --> actual=$actual, expected=$expected [$a2h]")
}
} while (ans.size < 100)
}
@first087
Copy link
Author

@first087
Copy link
Author

ตัวอย่างคำตอบ

Ans#1 --> actual=4303.0, expected=4303.0 [A=0, B=4, C=3, D=0, E=7, F=0, G=5, H=5]
Ans#2 --> actual=7151.0, expected=7151.0 [A=0, B=7, C=1, D=5, E=2, F=7, G=0, H=9]
Ans#3 --> actual=8707.0, expected=8707.0 [A=0, B=8, C=7, D=0, E=4, F=9, G=2, H=1]
Ans#4 --> actual=8626.0, expected=8626.0 [A=0, B=8, C=6, D=2, E=5, F=0, G=0, H=3]
Ans#5 --> actual=8434.0, expected=8434.0 [A=0, B=8, C=4, D=3, E=4, F=8, G=0, H=5]
Ans#6 --> actual=8606.0, expected=8606.0 [A=1, B=8, C=6, D=0, E=4, F=0, G=0, H=0]
Ans#7 --> actual=8343.0, expected=8343.0 [A=0, B=8, C=3, D=4, E=4, F=6, G=1, H=8]
Ans#8 --> actual=5030.0, expected=5030.0 [A=0, B=5, C=0, D=3, E=9, F=6, G=4, H=0]
Ans#9 --> actual=4202.0, expected=4202.0 [A=0, B=4, C=2, D=0, E=6, F=8, G=6, H=6]
Ans#10 --> actual=8414.0, expected=8414.0 [A=1, B=8, C=4, D=1, E=3, F=6, G=2, H=4]
Ans#11 --> actual=6323.0, expected=6323.0 [A=0, B=6, C=3, D=2, E=0, F=9, G=2, H=5]
Ans#12 --> actual=8000.0, expected=8000.0 [A=3, B=8, C=0, D=0, E=0, F=8, G=6, H=8]
Ans#13 --> actual=3000.0, expected=3000.0 [A=1, B=3, C=0, D=0, E=4, F=0, G=4, H=5]
Ans#14 --> actual=7333.0, expected=7333.0 [A=0, B=7, C=3, D=3, E=2, F=8, G=1, H=6]
Ans#15 --> actual=2000.0, expected=2000.0 [A=0, B=2, C=0, D=0, E=2, F=8, G=8, H=8]
Ans#16 --> actual=7202.0, expected=7202.0 [A=2, B=7, C=2, D=0, E=0, F=7, G=1, H=2]
Ans#17 --> actual=9343.0, expected=9343.0 [A=0, B=9, C=3, D=4, E=6, F=6, G=9, H=6]
Ans#18 --> actual=6141.0, expected=6141.0 [A=0, B=6, C=1, D=4, E=0, F=8, G=1, H=8]
Ans#19 --> actual=8333.0, expected=8333.0 [A=0, B=8, C=3, D=3, E=4, F=9, G=8, H=3]
Ans#20 --> actual=9323.0, expected=9323.0 [A=1, B=9, C=3, D=2, E=5, F=7, G=8, H=2]
Ans#21 --> actual=8060.0, expected=8060.0 [A=0, B=8, C=0, D=6, E=4, F=9, G=5, H=6]
Ans#22 --> actual=7111.0, expected=7111.0 [A=2, B=7, C=1, D=1, E=0, F=3, G=4, H=7]
Ans#23 --> actual=8101.0, expected=8101.0 [A=3, B=8, C=1, D=0, E=1, F=4, G=1, H=3]
Ans#24 --> actual=9303.0, expected=9303.0 [A=2, B=9, C=3, D=0, E=3, F=7, G=8, H=9]
Ans#25 --> actual=8161.0, expected=8161.0 [A=0, B=8, C=1, D=6, E=5, F=3, G=2, H=3]
Ans#26 --> actual=8525.0, expected=8525.0 [A=0, B=8, C=5, D=2, E=5, F=0, G=9, H=2]
Ans#27 --> actual=9070.0, expected=9070.0 [A=0, B=9, C=0, D=7, E=7, F=3, G=9, H=2]
Ans#28 --> actual=9151.0, expected=9151.0 [A=1, B=9, C=1, D=5, E=6, F=2, G=1, H=1]
Ans#29 --> actual=6030.0, expected=6030.0 [A=1, B=6, C=0, D=3, E=0, F=2, G=6, H=2]
Ans#30 --> actual=8050.0, expected=8050.0 [A=1, B=8, C=0, D=5, E=4, F=2, G=2, H=2]
Ans#31 --> actual=6111.0, expected=6111.0 [A=1, B=6, C=1, D=1, E=9, F=7, G=2, H=5]
Ans#32 --> actual=9434.0, expected=9434.0 [A=0, B=9, C=4, D=3, E=6, F=8, G=8, H=3]
Ans#33 --> actual=9202.0, expected=9202.0 [A=3, B=9, C=2, D=0, E=3, F=0, G=4, H=6]
Ans#34 --> actual=8212.0, expected=8212.0 [A=2, B=8, C=2, D=1, E=2, F=6, G=0, H=3]
Ans#35 --> actual=9242.0, expected=9242.0 [A=1, B=9, C=2, D=4, E=6, F=1, G=3, H=1]
Ans#36 --> actual=9020.0, expected=9020.0 [A=3, B=9, C=0, D=2, E=3, F=2, G=0, H=6]
Ans#37 --> actual=7515.0, expected=7515.0 [A=0, B=7, C=5, D=1, E=2, F=3, G=8, H=9]
Ans#38 --> actual=8252.0, expected=8252.0 [A=0, B=8, C=2, D=5, E=4, F=6, G=0, H=9]
Ans#39 --> actual=5010.0, expected=5010.0 [A=1, B=5, C=0, D=1, E=8, F=2, G=8, H=1]
Ans#40 --> actual=8616.0, expected=8616.0 [A=0, B=8, C=6, D=1, E=4, F=5, G=5, H=6]
Ans#41 --> actual=9515.0, expected=9515.0 [A=1, B=9, C=5, D=1, E=5, F=0, G=7, H=9]
Ans#42 --> actual=4212.0, expected=4212.0 [A=0, B=4, C=2, D=1, E=7, F=3, G=1, H=3]
Ans#43 --> actual=9111.0, expected=9111.0 [A=3, B=9, C=1, D=1, E=3, F=2, G=1, H=5]
Ans#44 --> actual=9808.0, expected=9808.0 [A=0, B=9, C=8, D=0, E=6, F=8, G=2, H=1]
Ans#45 --> actual=8030.0, expected=8030.0 [A=2, B=8, C=0, D=3, E=2, F=3, G=1, H=8]
Ans#46 --> actual=9050.0, expected=9050.0 [A=1, B=9, C=0, D=5, E=5, F=7, G=5, H=5]
Ans#47 --> actual=9161.0, expected=9161.0 [A=0, B=9, C=1, D=6, E=6, F=6, G=7, H=8]
Ans#48 --> actual=6232.0, expected=6232.0 [A=0, B=6, C=2, D=3, E=1, F=1, G=9, H=4]
Ans#49 --> actual=7313.0, expected=7313.0 [A=1, B=7, C=3, D=1, E=2, F=1, G=8, H=0]
Ans#50 --> actual=9313.0, expected=9313.0 [A=2, B=9, C=3, D=1, E=4, F=4, G=1, H=4]
Ans#51 --> actual=4101.0, expected=4101.0 [A=1, B=4, C=1, D=0, E=6, F=3, G=0, H=1]
Ans#52 --> actual=6424.0, expected=6424.0 [A=0, B=6, C=4, D=2, E=1, F=1, G=1, H=4]
Ans#53 --> actual=1000.0, expected=1000.0 [A=0, B=1, C=0, D=0, E=1, F=4, G=4, H=4]
Ans#54 --> actual=7222.0, expected=7222.0 [A=1, B=7, C=2, D=2, E=2, F=0, G=8, H=2]
Ans#55 --> actual=7242.0, expected=7242.0 [A=0, B=7, C=2, D=4, E=3, F=2, G=6, H=3]
Ans#56 --> actual=7505.0, expected=7505.0 [A=1, B=7, C=5, D=0, E=2, F=1, G=0, H=0]
Ans#57 --> actual=8323.0, expected=8323.0 [A=1, B=8, C=3, D=2, E=3, F=6, G=1, H=5]
Ans#58 --> actual=3202.0, expected=3202.0 [A=0, B=3, C=2, D=0, E=5, F=1, G=5, H=5]
Ans#59 --> actual=9505.0, expected=9505.0 [A=1, B=9, C=5, D=0, E=4, F=9, G=8, H=8]
Ans#60 --> actual=8010.0, expected=8010.0 [A=3, B=8, C=0, D=1, E=1, F=0, G=4, H=8]
Ans#61 --> actual=6121.0, expected=6121.0 [A=1, B=6, C=1, D=2, E=0, F=1, G=8, H=2]
Ans#62 --> actual=4000.0, expected=4000.0 [A=1, B=4, C=0, D=0, E=5, F=6, G=6, H=7]
Ans#63 --> actual=7000.0, expected=7000.0 [A=2, B=7, C=0, D=0, E=9, F=9, G=7, H=9]
Ans#64 --> actual=8131.0, expected=8131.0 [A=1, B=8, C=1, D=3, E=3, F=9, G=6, H=2]
Ans#65 --> actual=9353.0, expected=9353.0 [A=0, B=9, C=3, D=5, E=7, F=1, G=4, H=3]
Ans#66 --> actual=9606.0, expected=9606.0 [A=1, B=9, C=6, D=0, E=5, F=2, G=6, H=6]
Ans#67 --> actual=9717.0, expected=9717.0 [A=0, B=9, C=7, D=1, E=7, F=0, G=9, H=0]
Ans#68 --> actual=7131.0, expected=7131.0 [A=1, B=7, C=1, D=3, E=2, F=3, G=4, H=0]
Ans#69 --> actual=6000.0, expected=6000.0 [A=2, B=6, C=0, D=0, E=8, F=8, G=0, H=2]
Ans#70 --> actual=7424.0, expected=7424.0 [A=0, B=7, C=4, D=2, E=2, F=7, G=3, H=6]
Ans#71 --> actual=8232.0, expected=8232.0 [A=1, B=8, C=2, D=3, E=3, F=5, G=1, H=7]
Ans#72 --> actual=5121.0, expected=5121.0 [A=0, B=5, C=1, D=2, E=9, F=2, G=9, H=3]
Ans#73 --> actual=6050.0, expected=6050.0 [A=0, B=6, C=0, D=5, E=1, F=3, G=5, H=4]
Ans#74 --> actual=9101.0, expected=9101.0 [A=3, B=9, C=1, D=0, E=2, F=7, G=6, H=8]
Ans#75 --> actual=9000.0, expected=9000.0 [A=4, B=9, C=0, D=0, E=2, F=2, G=0, H=3]
Ans#76 --> actual=6212.0, expected=6212.0 [A=1, B=6, C=2, D=1, E=0, F=1, G=9, H=1]
Ans#77 --> actual=7606.0, expected=7606.0 [A=0, B=7, C=6, D=0, E=2, F=4, G=8, H=7]
Ans#78 --> actual=7616.0, expected=7616.0 [A=0, B=7, C=6, D=1, E=3, F=1, G=1, H=2]
Ans#79 --> actual=9171.0, expected=9171.0 [A=0, B=9, C=1, D=7, E=7, F=2, G=1, H=4]
Ans#80 --> actual=4020.0, expected=4020.0 [A=0, B=4, C=0, D=2, E=6, F=9, G=3, H=7]
Ans#81 --> actual=7040.0, expected=7040.0 [A=1, B=7, C=0, D=4, E=2, F=0, G=6, H=4]
Ans#82 --> actual=9060.0, expected=9060.0 [A=1, B=9, C=0, D=6, E=6, F=2, G=0, H=2]
Ans#83 --> actual=9141.0, expected=9141.0 [A=1, B=9, C=1, D=4, E=5, F=9, G=4, H=2]
Ans#84 --> actual=9010.0, expected=9010.0 [A=3, B=9, C=0, D=1, E=3, F=5, G=7, H=1]
Ans#85 --> actual=6505.0, expected=6505.0 [A=0, B=6, C=5, D=0, E=0, F=7, G=6, H=5]
Ans#86 --> actual=7707.0, expected=7707.0 [A=0, B=7, C=7, D=0, E=3, F=2, G=1, H=0]
Ans#87 --> actual=7050.0, expected=7050.0 [A=0, B=7, C=0, D=5, E=2, F=7, G=9, H=8]
Ans#88 --> actual=5202.0, expected=5202.0 [A=1, B=5, C=2, D=0, E=8, F=1, G=1, H=2]
Ans#89 --> actual=5212.0, expected=5212.0 [A=0, B=5, C=2, D=1, E=8, F=8, G=4, H=6]
Ans#90 --> actual=5020.0, expected=5020.0 [A=1, B=5, C=0, D=2, E=8, F=0, G=0, H=5]
Ans#91 --> actual=5313.0, expected=5313.0 [A=0, B=5, C=3, D=1, E=9, F=0, G=3, H=5]
Ans#92 --> actual=2101.0, expected=2101.0 [A=0, B=2, C=1, D=0, E=3, F=7, G=0, H=0]
Ans#93 --> actual=9535.0, expected=9535.0 [A=0, B=9, C=5, D=3, E=6, F=5, G=2, H=7]
Ans#94 --> actual=6414.0, expected=6414.0 [A=0, B=6, C=4, D=1, E=0, F=8, G=4, H=5]
Ans#95 --> actual=7141.0, expected=7141.0 [A=0, B=7, C=1, D=4, E=2, F=8, G=9, H=6]
Ans#96 --> actual=9333.0, expected=9333.0 [A=1, B=9, C=3, D=3, E=5, F=5, G=0, H=6]
Ans#97 --> actual=9222.0, expected=9222.0 [A=2, B=9, C=2, D=2, E=4, F=4, G=0, H=5]
Ans#98 --> actual=9404.0, expected=9404.0 [A=2, B=9, C=4, D=0, E=4, F=2, G=4, H=5]
Ans#99 --> actual=4111.0, expected=4111.0 [A=0, B=4, C=1, D=1, E=7, F=5, G=8, H=0]
Ans#100 --> actual=9444.0, expected=9444.0 [A=0, B=9, C=4, D=4, E=7, F=3, G=3, H=0]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment