Câu hỏi này là về những đống cát abelian . Đọc thử thách trước đó và xem video số này để tìm hiểu thêm.
Một hố cát abelian có kích thước n by n là một lưới chứa số 0, 1, 2 và 3 (đại diện cho số hạt cát). Thêm hai sandpiles hoạt động bằng cách trước tiên thêm phần tử theo phần tử, sau đó lật đổ bất kỳ phần tử nào ở trên 3. Thứ tự mà bạn lật đổ không quan trọng, kết quả cuối cùng là như nhau. Khi một tế bào lật đổ số lượng của nó giảm 4 và mỗi hàng xóm trực tiếp của nó tăng thêm 1. Điều này có thể gây ra phản ứng dây chuyền. Nếu một ô nằm trên rìa của lưới, bất kỳ hạt nào rơi ra khỏi lưới trong khi lật đổ sẽ biến mất.
Ví dụ: tôi đang thêm hai 3 đến 3 sandpiles (tạo ra phản ứng dây chuyền khá cực đoan):
3 3 3 1 2 1 4 5 4 4 6 4 6 2 6 6 3 6 2 5 2 4 1 4 4 2 4 0 4 0 2 0 2 2 1 2
3 3 3 + 2 1 2 = 5 4 5 -> 6 0 6 -> 2 4 2 -> 3 0 3 -> 5 0 5 -> 1 4 1 -> 2 0 2 -> 4 0 4 -> 0 4 0 -> 1 0 1
3 3 3 1 2 1 4 5 4 4 6 4 6 2 6 6 3 6 2 5 2 4 1 4 4 2 4 0 4 0 2 0 2 2 1 2
Trong thử thách này, chúng tôi quan tâm đến một tập hợp con của tất cả n có thể bằng n sandpiles. Tập hợp con này chứa bất kỳ sandpile nào mà bạn có thể nhận được bằng cách thêm một sandpile tùy ý vào all-3s n by n sandpile. Ví dụ, ngay phía trên chúng ta đã thấy nó 212 | 101 | 212
nằm trong tập hợp con, bởi vì chúng ta đã có được nó bằng cách thêm một cái gì đó vào tất cả 3 hố cát.
Bây giờ tập hợp con này có một yếu tố thú vị: yếu tố nhận dạng . Nếu bạn lấy phần tử này và thêm nó vào bất kỳ phần tử nào khác trong tập hợp con , tổng không thay đổi. Nói cách khác, đống cát này hoạt động giống như một số không của tập hợp con này. Nó chỉ xảy ra như vậy 212 | 101 | 212
là phần tử 0 cho tập hợp con của 3 bằng 3. Ví dụ:
2 2 2 2 1 2 4 3 4 0 5 0 2 1 2 2 2 2
2 2 2 + 1 0 1 = 3 2 3 -> 5 2 5 -> 1 6 1 -> 2 2 2
2 2 2 2 1 2 4 3 4 0 5 0 2 1 2 2 2 2
Bây giờ đây là thử thách của bạn: cho n , tìm phần tử nhận dạng của tập hợp con của n theo lưới n . Xuất ra nó bằng cách chỉ định một màu duy nhất có đủ độ tương phản của sự lựa chọn của bạn với từng 0, 1, 2, 3
và xuất ra một hình ảnh n theo n. Mã của bạn phải có thể tạo ra trường hợp 50 đến 50 trong một phút trên một PC hiện đại hợp lý.
Ví dụ: phần tử nhận dạng 500 x 500:
Đây là blue = 3, green = 2, red = 1, white = 0. Nhưng bạn không phải sử dụng bảng màu này trong câu trả lời của mình.