Giới thiệu
Với mục đích của thử thách này, chúng tôi sẽ xác định các lân cận của một phần tử trong ma trận vuông (sao cho ) là tất cả các mục nhập của liền kề theo đường chéo, theo chiều ngang hoặc chiều dọc với (tức là họ "bao quanh" , không quấn quanh).A E = A i , j A E E
Đối với trẻ em, một định nghĩa chính thức về các lân cận của cho một matix là (0-indexed): trong đó n×nN i ,E i ,
Giả sử phần tử tại chỉ mục tồn tại thù địch nếu nó tương ứng với tất cả các hàng xóm của nó (nghĩa là, ). Đáng buồn thay, mục nhập nghèo nàn này không thể mượn thậm chí một tách đường từ những cư dân thô lỗ gần đó ...
Bài tập
Đủ các câu chuyện: Cho ma trận vuông gồm các số nguyên dương, xuất ra một trong các cách sau:
- Một danh sách phẳng các phần tử (được lặp lại hoặc không) cho biết tất cả các mục chiếm một số chỉ số trong sao cho các hàng xóm là thù địch.M N i ,
- Một ma trận boolean có s tại các vị trí mà hàng xóm là thù địch và khác (bạn có thể chọn bất kỳ giá trị nhất quán nào khác thay cho và ).0 0 1
- Danh sách các cặp chỉ số đại diện cho các vùng lân cận thù địch.
Tham chiếu thực hiện trong Physica - cũng hỗ trợ cú pháp Python cho I / O. Bạn có thể lấy đầu vào và cung cấp đầu ra thông qua bất kỳ phương thức tiêu chuẩn nào và ở bất kỳ định dạng hợp lý nào, trong khi lưu ý rằng các lỗ hổng này bị cấm theo mặc định. Đây là mã golf, vì vậy mã ngắn nhất tính bằng byte (bằng mọi ngôn ngữ) sẽ thắng!
Hơn nữa, bạn cũng có thể lấy kích thước ma trận làm đầu vào và ngoài ra có thể lấy ma trận làm danh sách phẳng vì nó sẽ luôn là hình vuông.
Thí dụ
Hãy xem xét ma trận sau:
Hàng xóm tương ứng của mỗi yếu tố là:
i j – E -> Neighbours | All coprime to E?
|
0 0 – 64 -> {10; 27; 22} | False
0 1 – 10 -> {64; 14; 27; 22; 32} | False
0 2 – 14 -> {10; 22; 32} | False
1 0 – 27 -> {64; 10; 22; 53; 58} | True
1 1 – 22 -> {64; 10; 14; 27; 32; 53; 58; 36} | False
1 2 – 32 -> {10; 14; 22; 58; 36} | False
2 0 – 53 -> {27; 22; 58} | True
2 1 – 58 -> {27; 22; 32; 53; 36} | False
2 2 – 36 -> {22; 32; 58} | False
Và do đó, đầu ra phải là một trong những điều sau đây:
{27; 53}
{{0; 0; 0}; {1; 0; 0}; {1; 0; 0}}
{(1; 0); (2; 0)}
Các trường hợp thử nghiệm
Input –> Version 1 | Version 2 | Version 3
[[36, 94], [24, 69]] ->
[]
[[0, 0], [0, 0]]
[]
[[38, 77, 11], [17, 51, 32], [66, 78, 19]] –>
[38, 19]
[[1, 0, 0], [0, 0, 0], [0, 0, 1]]
[(0, 0), (2, 2)]
[[64, 10, 14], [27, 22, 32], [53, 58, 36]] ->
[27, 53]
[[0, 0, 0], [1, 0, 0], [1, 0, 0]]
[(1, 0), (2, 0)]
[[9, 9, 9], [9, 3, 9], [9, 9, 9]] ->
[]
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[]
[[1, 1, 1], [1, 1, 1], [1, 1, 1]] ->
[1, 1, 1, 1, 1, 1, 1, 1, 1] or [1]
[[1, 1, 1], [1, 1, 1], [1, 1, 1]]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
[[35, 85, 30, 71], [10, 54, 55, 73], [80, 78, 47, 2], [33, 68, 62, 29]] ->
[71, 73, 47, 29]
[[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 1, 0], [0, 0, 0, 1]]
[(0, 3), (1, 3), (2, 2), (3, 3)]