GIẢI MA PHƯƠNG KỲ ẢO
(The Magic Square Tutorial)
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
writer: @arieswhite
Định nghĩa:
Ma trận kì ảo (Magic Square) trong bài viết là một cách sắp xếp n² số nguyên phân biệt, trong một bảng vuông sao cho tổng n số trên mỗi hàng, cột, đường chéo chính và đường chéo phụ đều bằng nhau.
Tồn tại ma trận kì ảo chuẩn cho mọi bậc n ≥ 1 trừ n = 2.
Ma phương lẻ
Là ma trận với bậc n là số lẻ (n%2==0)
Ma phương chẵn
Là ma trận với bậc có dạng 4n
Ma phương chẵn lẻ
Là ma trận với bậc có dạng 4n + 2
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Chú ý: Để đơn giản cho việc tính toán và code, chúng ta sẽ bắt đầu bằng chỉ số [0][0] trên mảng 2 chiều
Có nhiều cách, trong bài viết này tác giả xin trình bài 1 cách đi như sau:
- Bước 1: Chọn vị trí bắt đầu tại ô thuộc hàng đầu tiên, cột chính giữa
[0][n/2]
- Bước 2: Tại mỗi bước, di chuyển lên ô phía trên bên trái
[i-1][j+1]
- Nếu đi quá bảng về phía trên, di chuyển đến ô ở hàng cuối cùng, cùng cột
- Nếu đi quá bảng về phía bên phải, di chuyển đến ô ở cột đầu tiên, cùng hàng
- Nếu đi đến ô góc của bảng, lùi xuống một hàng
- Nếu ô hướng đến đã điền rồi, lùi xuống một hàng
-> Lặp lại cho tới khi đã điền hết bảng
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Mẹo
Vì chúng ta chọn chỉ số 0,0 nên ta dễ dàng dùng phép Mod cho n mỗi khi đi quá bảng
- Bước 1: chia bảng thành từng nhóm 4x4 (trên mỗi nhóm sẽ có 1 đường chéo chính và 1 đường chéo phụ)
- Bước 2: Điền số từ trái sang phải từ trên xuống dưới
- Ô nào thuộc 2 đường chéo của mỗi nhóm thì điền, không thì chỉ tăng biến đếm lên
- Bước 3: Điền những số còn lại vào bảng từ phải sang trái từ dưới lên trên
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Mẹo
- Cách xác định đường chéo chính: Các ô trên đường chéo sẽ có hiệu chỉ số bằng nhau (ở đây: i-j == 0)
- Cách xác định đường chéo phụ: Các ô trên đường chéo sẽ có tổng chỉ số bằng nhau (ở đây: i+j == 3)
- Xác định đường chéo chính phụ của từng nhóm: Do bảng được chia đều thành các ma trận nhỏ 4x4 nên chỉ số khi %4 sẽ lặp lại theo chu kỳ
-> CTTQ:
- Đường chéo chính: i%4 - j%4
- Đường chéo phụ: i%4 + j%4,
- Chia ma trận thành từng nhóm 2x2
- Xem mỗi nhóm như một ô vuông
-> Ta có: Thứ tự điền theo nhóm giống với cách đi trên ma phương lẻ
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Quy tắc điền số vào mỗi ô trong nhóm
- Theo thứ tự điền vào từng ô trong nhóm ta có được 3 quy tắc điền là: L, U, X (xem hình)
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
CODE MSEO
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Mẹo
Sử dụng các mẹo đã làm ở 2 ma phương trước
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
+ code cờ-lin vừa code vừa check bug
Bài này chỉ cần nắm được các quy luật, code trâu chắc, biết thêm một vài mẹo để code được clean, nhanh, đỡ bug hơn, vậy thôi!
Thân chào và Gudluk!
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Từ nay về sau không còn sợ Magic Square nữa nhé! :> trừ bài Super Magic Square
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Nguồn tham khảo:
Thuật Toán giải ma phương (ma trận kì ảo) - ITS
Một vài đặc tính của ma phương - GS Tiến Sĩ Tô Đồng
Magic Square - Wiki
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
fullsourcecode
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Tags: Thuật toán giải ma phương
, ma phương chẵn
, ma phương lẻ
, ma phương chẵn lẻ
, giải ma phương