Code lập trình giải bài toán Knock out chào 2022

Bài toán Knock out chào 2022 của thầy Trần Phương và TS Phạm Quang Dũng đẹp nhưng không dễ có thể lập trình để hóa giải được nó.

Đề bài:

Bạn hãy sử dụng 4 phép toán cộng, trừ, nhân, chia và không dùng dấu ngoặc để điền xen vào giữa dãy các chữ số sắp thứ tự tăng dần 1, 2, 3, 4, 5, 6, 7, 8, 9, tạo ra một kết quả đúng là 2022. Ví dụ: 1234 + 5 − 6 + 789 = 2022.

Bạn có thể tìm được bao nhiêu đáp án?

Lời giải và bình luận:

Chúng ta có thể lập luận bằng toán học để đưa ra nhận xét: muốn tạo ra đẳng thức đúng thì điều kiện cần là chuỗi các số liền nhau (không chứa phép toán) từ trái sang phải dài nhất sẽ không vượt quá 4 chữ số.

Từ nhận xét này, ta có thể dùng tư duy toán học (đánh giá và dấu hiệu chia hết) để khảo sát, biện luận định dạng điền các phép toán cộng, trừ, nhân, chia và không được dùng dấu ngoặc khi thực hiện số 1234 tương tác với các chữ số 5, 6, 7, 8, 9 (với chú ý các chữ số này có thể được ghép liền nhau) để tìm được một đáp án duy nhất với kết quả 2022 sau đây:

1234 + 5 − 6 + 789 = 2022.

Tuy nhiên, để vét cạn các khả năng, bắt buộc chúng ta phải sử dụng lập trình và có thêm 5 đáp án sau đây:

12 ×34 ×5 + 6 − 7 −8 − 9 = 2022

1 + 2 + 3 + 4× 567× 8 : 9 = 2022

1 - 2 + 345 × 6 − 7× 8 + 9 = 2022

1 ×2 × 3 + 4 × 567 × 8 : 9 = 2022

1 + 2 + 3:4 × 5 × 67× 8 + 9 = 2022

Sau đây là Code lập trình vét cạn 6 khả năng trên:

Code lập trình giải bài toán Knock out chào 2022
Code lập trình giải bài toán Knock out chào 2022 - 1
Code lập trình giải bài toán Knock out chào 2022 - 2

Bình luận:

Dạng toán điền số để phát triển tư duy là rất cơ bản cho các học sinh dưới 12 tuổi trên toàn thế giới. Tuy nhiên, việc tích hợp Toán với Tin học (sử dụng lập trình) để sáng tạo hay giải mã các bài toán điền số là con đường thông minh để sớm cho trẻ em yêu thích "Khoa học máy tính" - lĩnh vực then chốt trong cách mạng công nghệ số.

Trần Phương - Quang Dũng