Trong tam giác của Pascal, mỗi số là tổng của hai số ngay phía trên nó, coi các điểm trống là 0:
Bằng cách xoay tam giác, chúng ta có thể cắt ra các ma trận vuông có kích thước và góc quay khác nhau mà tôi sẽ gọi là ma trận của Pascal . Lưu ý rằng những ma trận đó luôn cần chứa top . Dưới đây là một số ví dụ:
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
6 3 1
3 2 1
1 1 1
1 5 15 35 70
1 4 10 20 35
1 3 6 10 15
1 2 3 4 5
1 1 1 1 1
1
1 1
2 1
Nhiệm vụ
Đưa ra một ma trận vuông chứa các số dương ở bất kỳ định dạng hợp lý nào, hãy quyết định xem đó có phải là ma trận của Pascal không .
Quyết định có nghĩa là trả về các giá trị trung thực hoặc sai lệch tùy thuộc vào việc đầu vào là ma trận của Pascal hay để sửa hai giá trị không đổi và trả về một giá trị cho đầu vào đúng và đầu kia cho đầu vào sai.
Đây là môn đánh gôn , vì vậy hãy cố gắng sử dụng càng ít byte càng tốt trong ngôn ngữ bạn chọn. Mã ngắn nhất trong mỗi ngôn ngữ sẽ thắng, do đó tôi sẽ không chấp nhận câu trả lời.
Các trường hợp thử nghiệm
Thật
[[1, 1, 1, 1], [1, 2, 3, 4], [1, 3, 6, 10], [1, 4, 10, 20]]
[[6, 3, 1], [3, 2, 1], [1, 1, 1]]
[[1, 5, 15, 35, 70], [1, 4, 10, 20, 35], [1, 3, 6, 10, 15], [1, 2, 3, 4, 5], [1, 1, 1, 1, 1]]
[[1]]
[[1, 1], [2, 1]]
Sai
[[2]]
[[1, 2], [2, 1]]
[[1, 1], [3, 1]]
[[1, 1, 1, 1], [1, 2, 3, 4], [1, 4, 6, 10], [1, 4, 10, 20]]
[[6, 3, 1], [1, 1, 1], [3, 2, 1]]
[[2, 2, 2, 2], [2, 4, 6, 8], [2, 6, 12, 20], [2, 8, 20, 40]]
[[40, 20, 8, 2], [20, 12, 6, 2], [8, 6, 4, 2], [2, 2, 2, 2]]
[[1, 5, 15, 34, 70], [1, 4, 10, 20, 34], [1, 3, 6, 10, 15], [1, 2, 3, 4, 5], [1, 1, 1, 1, 1]]
[[40, 20, 8, 2], [20, 12, 6, 2], [8, 6, 4, 2], [2, 2, 2, 2]]
. Câu trả lời ban đầu của tôi là không đúng sự thật cho câu hỏi này, nhưng đúng cho tất cả các trường hợp thử nghiệm hiện tại.