เนื่องจากเด็กๆเล่นแก้ปัญหาที่ Brilliant.org จึงมีโจทย์ที่คิดไม่ค่อยออก ผมเลยทดลองเขียนโปรแกรมแก้ปัญหาเหล่านั้นแบบ Brute Force ซื่งแปลว่าแก้แบบลองใส่ค่าที่เป็นไปได้ทั้งหมดแล้วเช็คว่าค่าที่ใส่เข้าไปค่าไหนเป็นคำตอบผมบอกเด็กๆว่าถ้าค่าที่เป็นไปได้มีไม่เกินสักพันล้านแบบ เราอาจเขียนโปรแกรมลองมันหมดทุกตัวเลยเพราะคอมพิวเตอร์ตอนนี้เร็วมากแล้ว (และจะเร็วขึ้นอีกในอนาคต)
เช่นข้อแรกมีข้อความที่ถูกเข้ารหัสด้วย Caesar cipher คือตัวอักษรภาษาอังกฤษถูกแทนที่ด้วยตัวอักษรอีกตัวที่ห่างออกไประยะคงที่ เช่นถ้าระยะเท่ากับ 2 ก็จะมีการแทนที่แบบ A => C, B => D, C => E, …, X => Z, Y => A, Z => B เป็นต้น ดังนั้นถ้ามีข้อความเข้ารหัสอ่านไม่ออกแบบนี้ เราก็สามารถทดลองการแทนที่ตัวอักษรกลับ 26 แบบแล้วลองอ่านข้อความที่ได้มาเลยก็ได้ครับ
อีกข้อคือได้โจทย์ XX + YY + ZZ = XYZ โดยที่ X, Y, และ Z เป็นเลขโดด 0-9 ให้หาค่าของ X, Y, และ Z เราก็สามารถแก้ปัญหาแบบ brute force ได้เพราะแบบที่เป็นไปได้ของ X, Y, และ Z มีเพียง 1,000 แบบเท่านั้น (X เป็นได้ 10 แบบ คูณกับ Y เป็นได้ 10 แบบ คูณกับ Z เป็นได้ 10 แบบ เท่ากับ 1,000 แบบ) เราเขียนโค้ด Python ง่ายๆแบบนี้ คือให้ค่า X, Y, และ Z เปลี่ยนไปเรื่อยๆแล้วดูว่าค่าไหนทำให้ XX + YY + ZZ = XYZ ก็พิมพ์ผลออกมา จะได้ว่า X, Y, Z คือ 0, 0, 0 หรือ 1, 9, 8 แต่คำตอบ 0, 0, 0 เป็นคำตอบที่ไม่น่าสนใจ ดังนั้นเราจึงเลือก X, Y, Z = 1, 9, 8 ซึ่งทำให้ 11 + 99 + 88 = 198: