Diễn đàn giới thiệu bài viết này không phải để chỉ ra đây là thuật toán hay, mà ở đây muốn các bạn tham khảo làm thế nào để tạo ra một chương trình VBA. Trên quan điểm đó, chúng tôi mong muốn diễn đạt để ngay cả người mới học cũng cảm thấy dễ hiểu nhất.
Bài toán đặt ra:
Chúng ta biết rằng Sudoku là trò chơi rất nổi tiếng, gồm một bảng ô vuông 9x9 ô. Trong đó lại chia thành các khối vuông nhỏ 3x3. Nhiệm vụ của người chơi là đặt các số từ 1 đến 9 vào các khối vuông nhỏ 3x3, mỗi số sử dụng một lần. Kết quả mong muốn là trong cả ô vuông lớn 9x9, trong cùng một hàng hay cùng một cột không có hai số nào trùng nhau.
Ta ví dụ đề bài như sau:
Kết quả mong muốn là:
Không thể nói rằng, ai cũng có thể học và sử dụng tốt VBA, nhưng thực tế là VBA rất thú vị. Diễn đàn muốn giới thiệu với các bạn rằng, VBA cũng có thể làm được những thứ thú vị như thế này.
Trước hết, giải bài toán này không phải là máy tính, mà trước hết là cách nghĩ của con người hình thành nên thuật toán rồi từ đó ra lệnh cho máy tính thực thi theo ý mình.
Khái quát cách giải:
Trong chủ đề này, diễn đàn sẽ giới thiệu ba cách giải.
Phương án giải số 1: Tìm số
Ta có ví dụ dưới đây:
Trong khu vực 3x3 ở góc trên bên trái ta thấy rằng ở góc trên cùng bên trái chỉ có thể điền vào đó là 5. Bởi vì ngoài số 5 ra thì trong hàng và trong cột và trong chính khu vưc 3x3 đó thì các số khác đều đã tồn tại.
Bài toán đặt ra:
Chúng ta biết rằng Sudoku là trò chơi rất nổi tiếng, gồm một bảng ô vuông 9x9 ô. Trong đó lại chia thành các khối vuông nhỏ 3x3. Nhiệm vụ của người chơi là đặt các số từ 1 đến 9 vào các khối vuông nhỏ 3x3, mỗi số sử dụng một lần. Kết quả mong muốn là trong cả ô vuông lớn 9x9, trong cùng một hàng hay cùng một cột không có hai số nào trùng nhau.
Ta ví dụ đề bài như sau:
Bạn cần đăng nhập để thấy đính kèm
Kết quả mong muốn là:
Bạn cần đăng nhập để thấy đính kèm
Không thể nói rằng, ai cũng có thể học và sử dụng tốt VBA, nhưng thực tế là VBA rất thú vị. Diễn đàn muốn giới thiệu với các bạn rằng, VBA cũng có thể làm được những thứ thú vị như thế này.
Trước hết, giải bài toán này không phải là máy tính, mà trước hết là cách nghĩ của con người hình thành nên thuật toán rồi từ đó ra lệnh cho máy tính thực thi theo ý mình.
Khái quát cách giải:
Trong chủ đề này, diễn đàn sẽ giới thiệu ba cách giải.
Phương án giải số 1: Tìm số
Bạn cần đăng nhập để thấy đính kèm
Ta có ví dụ dưới đây:
Bạn cần đăng nhập để thấy đính kèm
Trong khu vực 3x3 ở góc trên bên trái ta thấy rằng ở góc trên cùng bên trái chỉ có thể điền vào đó là 5. Bởi vì ngoài số 5 ra thì trong hàng và trong cột và trong chính khu vưc 3x3 đó thì các số khác đều đã tồn tại.