Trang thông tin tổng hợp
Trang thông tin tổng hợp
  • Người nổi tiếng
  • Chính tả
  • Hình ảnh đẹp
  • Thơ văn học
Người nổi tiếng Chính tả Hình ảnh đẹp Thơ văn học
  1. Trang chủ
  2. Thơ văn học
Mục Lục

Câu đố số học Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

avatar
kangta
20:18 26/11/2025
Theo dõi trên

Mục Lục

câu đố số học là một bài tập toán học trong đó các chữ số của một số số được biểu thị bằng chữ cái (hoặc ký hiệu). Mỗi chữ cái biểu thị một giá trị riêng biệt . Mục tiêu là tìm các chữ số sao cho một phương trình toán học nhất định đã xác minh:

CP + IS + FUN - = TRUE

Một lượt gán chữ cái thành chữ số dẫn đến phương trình sau:

23 + 74 + 968 - = 1065

Có các câu trả lời khác cho vấn đề này. Chúng tôi sẽ cho biết cách tìm tất cả các giải pháp.

Lập mô hình bài toán

Giống như mọi bài toán tối ưu hoá khác, chúng ta sẽ bắt đầu bằng cách xác định các biến và hạn chế. Biến là các chữ cái, có thể nhận bất kỳ chữ số nào giá trị.

Đối với CP + IS + FUN = TRUE, các điều kiện ràng buộc như sau:

  • Phương trình: CP + IS + FUN = TRUE.
  • Mỗi chữ cái trong số 10 chữ cái phải là một chữ số khác nhau.
  • C, I, F và T không được bằng 0 (vì chúng tôi không viết số 0 ở đầu trong số).

Bạn có thể giải các bài toán mật mã bằng trình giải CP-SAT mới. hiệu quả hơn hoặc là công cụ giải quyết CP ban đầu. Chúng tôi sẽ đưa ra ví dụ cho bạn bằng cả hai trình giải, bắt đầu bằng mã CP-SAT.

Giải pháp CP-SAT

Chúng tôi sẽ trình bày các biến, quy tắc ràng buộc, lệnh gọi trình giải quyết và cuối cùng là các chương trình hoàn chỉnh.

Nhập thư viện

Mã sau đây nhập thư viện bắt buộc.

Khai báo mô hình

Mã sau đây khai báo mô hình cho sự cố này.

Xác định các biến

Khi dùng trình giải CP-SAT, bạn nên dùng một số phương pháp trợ giúp định nghĩa. Chúng ta sẽ sử dụng một trong các số đó, NewIntVar, để khai báo chữ số (số nguyên). Chúng tôi phân biệt giữa những chữ cái có thể là 0 và những chữ cái có thể bằng 0 không thể (C, I, F và T).

Xác định các quy tắc ràng buộc

Tiếp theo là các điều kiện ràng buộc. Trước tiên, chúng tôi đảm bảo rằng tất cả các chữ cái đều có giá trị khác nhau, bằng phương thức trợ giúp AddAllDifferent. Sau đó, chúng ta sử dụng trình trợ giúp AddEquality để tạo các điều kiện ràng buộc thực thi đẳng thức CP + IS + FUN = TRUE.

Máy in giải pháp

Mã cho máy in giải pháp, cho thấy từng giải pháp dưới dạng trình giải tìm thấy nội dung đó, được hiển thị dưới đây.

Gọi trình giải

Cuối cùng, chúng ta khắc phục bài toán và hiện đáp án. Tất cả điều kỳ diệu nằm trong operations_research::sat::SolveCpModel() .

Khi chạy chương trình, bạn sẽ phát kết quả sau đây, trong đó mỗi hàng là một giải pháp:

C=2 P=3 I=7 S=4 F=9 U=6 N=8 T=1 R=0 E=5 C=2 P=4 I=7 S=3 F=9 U=6 N=8 T=1 R=0 E=5 C=2 P=5 I=7 S=3 F=9 U=4 N=8 T=1 R=0 E=6 C=2 P=8 I=7 S=3 F=9 U=4 N=5 T=1 R=0 E=6 C=2 P=8 I=7 S=3 F=9 U=6 N=4 T=1 R=0 E=5 C=3 P=7 I=6 S=2 F=9 U=8 N=5 T=1 R=0 E=4 C=6 P=7 I=3 S=2 F=9 U=8 N=5 T=1 R=0 E=4 C=6 P=5 I=3 S=2 F=9 U=8 N=7 T=1 R=0 E=4 C=3 P=5 I=6 S=2 F=9 U=8 N=7 T=1 R=0 E=4 C=3 P=8 I=6 S=4 F=9 U=2 N=5 T=1 R=0 E=7 C=3 P=7 I=6 S=5 F=9 U=8 N=2 T=1 R=0 E=4 C=3 P=8 I=6 S=5 F=9 U=2 N=4 T=1 R=0 E=7 C=3 P=5 I=6 S=4 F=9 U=2 N=8 T=1 R=0 E=7 C=3 P=4 I=6 S=5 F=9 U=2 N=8 T=1 R=0 E=7 C=3 P=2 I=6 S=5 F=9 U=8 N=7 T=1 R=0 E=4 C=3 P=4 I=6 S=8 F=9 U=2 N=5 T=1 R=0 E=7 C=3 P=2 I=6 S=7 F=9 U=8 N=5 T=1 R=0 E=4 C=3 P=5 I=6 S=8 F=9 U=2 N=4 T=1 R=0 E=7 C=3 P=5 I=6 S=7 F=9 U=8 N=2 T=1 R=0 E=4 C=2 P=5 I=7 S=6 F=9 U=8 N=3 T=1 R=0 E=4 C=2 P=5 I=7 S=8 F=9 U=4 N=3 T=1 R=0 E=6 C=2 P=6 I=7 S=5 F=9 U=8 N=3 T=1 R=0 E=4 C=2 P=4 I=7 S=8 F=9 U=6 N=3 T=1 R=0 E=5 C=2 P=3 I=7 S=8 F=9 U=6 N=4 T=1 R=0 E=5 C=2 P=8 I=7 S=5 F=9 U=4 N=3 T=1 R=0 E=6 C=2 P=8 I=7 S=4 F=9 U=6 N=3 T=1 R=0 E=5 C=2 P=6 I=7 S=3 F=9 U=8 N=5 T=1 R=0 E=4 C=2 P=5 I=7 S=3 F=9 U=8 N=6 T=1 R=0 E=4 C=2 P=3 I=7 S=5 F=9 U=4 N=8 T=1 R=0 E=6 C=2 P=3 I=7 S=5 F=9 U=8 N=6 T=1 R=0 E=4 C=2 P=3 I=7 S=6 F=9 U=8 N=5 T=1 R=0 E=4 C=2 P=3 I=7 S=8 F=9 U=4 N=5 T=1 R=0 E=6 C=4 P=3 I=5 S=8 F=9 U=2 N=6 T=1 R=0 E=7 C=5 P=3 I=4 S=8 F=9 U=2 N=6 T=1 R=0 E=7 C=6 P=2 I=3 S=7 F=9 U=8 N=5 T=1 R=0 E=4 C=7 P=3 I=2 S=6 F=9 U=8 N=5 T=1 R=0 E=4 C=7 P=3 I=2 S=8 F=9 U=4 N=5 T=1 R=0 E=6 C=6 P=4 I=3 S=8 F=9 U=2 N=5 T=1 R=0 E=7 C=5 P=3 I=4 S=6 F=9 U=2 N=8 T=1 R=0 E=7 C=4 P=3 I=5 S=6 F=9 U=2 N=8 T=1 R=0 E=7 C=5 P=6 I=4 S=3 F=9 U=2 N=8 T=1 R=0 E=7 C=7 P=4 I=2 S=3 F=9 U=6 N=8 T=1 R=0 E=5 C=7 P=3 I=2 S=4 F=9 U=6 N=8 T=1 R=0 E=5 C=6 P=2 I=3 S=5 F=9 U=8 N=7 T=1 R=0 E=4 C=7 P=3 I=2 S=5 F=9 U=4 N=8 T=1 R=0 E=6 C=6 P=4 I=3 S=5 F=9 U=2 N=8 T=1 R=0 E=7 C=6 P=5 I=3 S=4 F=9 U=2 N=8 T=1 R=0 E=7 C=7 P=5 I=2 S=3 F=9 U=4 N=8 T=1 R=0 E=6 C=4 P=6 I=5 S=3 F=9 U=2 N=8 T=1 R=0 E=7 C=6 P=5 I=3 S=8 F=9 U=2 N=4 T=1 R=0 E=7 C=6 P=5 I=3 S=7 F=9 U=8 N=2 T=1 R=0 E=4 C=7 P=5 I=2 S=8 F=9 U=4 N=3 T=1 R=0 E=6 C=7 P=5 I=2 S=6 F=9 U=8 N=3 T=1 R=0 E=4 C=5 P=8 I=4 S=6 F=9 U=2 N=3 T=1 R=0 E=7 C=4 P=8 I=5 S=6 F=9 U=2 N=3 T=1 R=0 E=7 C=4 P=8 I=5 S=3 F=9 U=2 N=6 T=1 R=0 E=7 C=5 P=8 I=4 S=3 F=9 U=2 N=6 T=1 R=0 E=7 C=7 P=8 I=2 S=3 F=9 U=4 N=5 T=1 R=0 E=6 C=7 P=8 I=2 S=3 F=9 U=6 N=4 T=1 R=0 E=5 C=7 P=8 I=2 S=4 F=9 U=6 N=3 T=1 R=0 E=5 C=7 P=8 I=2 S=5 F=9 U=4 N=3 T=1 R=0 E=6 C=6 P=8 I=3 S=5 F=9 U=2 N=4 T=1 R=0 E=7 C=6 P=8 I=3 S=4 F=9 U=2 N=5 T=1 R=0 E=7 C=6 P=7 I=3 S=5 F=9 U=8 N=2 T=1 R=0 E=4 C=7 P=6 I=2 S=5 F=9 U=8 N=3 T=1 R=0 E=4 C=7 P=3 I=2 S=5 F=9 U=8 N=6 T=1 R=0 E=4 C=7 P=4 I=2 S=8 F=9 U=6 N=3 T=1 R=0 E=5 C=7 P=3 I=2 S=8 F=9 U=6 N=4 T=1 R=0 E=5 C=5 P=6 I=4 S=8 F=9 U=2 N=3 T=1 R=0 E=7 C=4 P=6 I=5 S=8 F=9 U=2 N=3 T=1 R=0 E=7 C=7 P=6 I=2 S=3 F=9 U=8 N=5 T=1 R=0 E=4 C=7 P=5 I=2 S=3 F=9 U=8 N=6 T=1 R=0 E=4 Statistics - status : OPTIMAL - conflicts : 110 - branches : 435 - wall time : 0.014934 ms - solutions found : 72

Hoàn tất chương trình

Sau đây là các chương trình hoàn chỉnh.

Giải pháp CP ban đầu

Trong trường hợp này, chúng tôi sẽ coi cơ số là biến số nên bạn có thể giải phương trình để có cơ sở cao hơn. (Không thể có giải pháp cơ sở thấp hơn cho CP + IS + FUN = TRUE vì 10 chữ cái phải khác nhau.)

Nhập thư viện

Mã sau đây nhập thư viện bắt buộc.

Tạo trình giải

Bước đầu tiên là tạo Solver.

Xác định các biến

Bước đầu tiên là tạo một IntVar cho mỗi chữ cái. Chúng tôi phân biệt giữa các chữ cái có thể có khả năng là 0 và những chữ cái không thể (C, I, F, và T).

Tiếp theo, chúng ta sẽ tạo một mảng chứa IntVar mới cho mỗi chữ cái. Điều này chỉ là cần thiết bởi vì khi xác định các hạn chế, chúng ta sẽ sử dụng AllDifferent, vì vậy chúng ta cần một mảng mà mỗi phần tử cần phải khác nhau.

Cuối cùng, chúng tôi xác minh rằng cơ sở của chúng tôi ít nhất phải bằng số chữ cái; nếu không thì sẽ không có giải pháp.

Xác định các quy tắc ràng buộc

Bây giờ, chúng ta đã xác định được các biến, bước tiếp theo là xác định các điều kiện ràng buộc. Trước tiên, chúng ta thêm quy tắc ràng buộc AllDifferent, buộc mỗi chữ cái phải có một chữ số khác nhau.

Tiếp theo, chúng ta sẽ thêm quy tắc ràng buộc CP + IS + FUN = TRUE. Các chương trình mẫu thực hiện việc này theo những cách khác nhau.

Gọi trình giải

Bây giờ, chúng ta đã có các biến và quy tắc ràng buộc, chúng ta đã sẵn sàng để giải quyết.

Mã cho máy in giải pháp, cho thấy từng giải pháp dưới dạng trình giải tìm thấy nội dung đó, được hiển thị dưới đây.

Vì có nhiều giải pháp cho vấn đề của chúng ta, nên chúng ta lặp lại theo các nghiệm có vòng lặp while solver.NextSolution(). Nếu chúng tôi chỉ muốn một giải pháp duy nhất, chúng tôi sẽ sử dụng thành ngữ này:

if (solver.NextSolution()) { // Print solution. } else { // Print that no solution could be found. }

Hoàn tất chương trình

Sau đây là các chương trình hoàn chỉnh.

0 Thích
Chia sẻ
  • Chia sẻ Facebook
  • Chia sẻ Twitter
  • Chia sẻ Zalo
  • Chia sẻ Pinterest
In
  • Điều khoản sử dụng
  • Chính sách bảo mật
  • Cookies
  • RSS
  • Điều khoản sử dụng
  • Chính sách bảo mật
  • Cookies
  • RSS

Trang thông tin tổng hợp Hauionline

Website Hauionline là blog chia sẻ vui về đời sống ở nhiều chủ đề khác nhau giúp cho mọi người dễ dàng cập nhật kiến thức. Đặc biệt có tiêu điểm quan trọng cho các bạn trẻ hiện nay.

© 2025 - Hauionline

Trang thông tin tổng hợp
  • Trang chủ
  • Người nổi tiếng
  • Chính tả
  • Hình ảnh đẹp
  • Thơ văn học
Đăng ký / Đăng nhập
Quên mật khẩu?
Chưa có tài khoản? Đăng ký