在帕斯卡三角形中,每个数字是其正上方两个数字的和,将空点视为零:
通过旋转三角形,我们可以切出大小和旋转不同的正方形矩阵,我将其称为Pascal矩阵。请注意,这些矩阵始终需要包含前。这里有些例子:
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
任务
给定一个包含任何合理格式的正数的方阵,请确定其是否为Pascal矩阵。
决定是根据输入是帕斯卡矩阵还是返回真值或伪值,或者确定两个常数值,然后为真输入返回一个常数,为假输入返回另一个常数。
这是code-golf,因此请尝试使用您选择的语言使用尽可能少的字节。每种语言中最短的代码将获胜,因此我不会接受答案。
测试用例
真正
[[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]]
假
[[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]]
@KevinCruijssen谢谢,补充。
—
Laikoni
[[40, 20, 8, 2], [20, 12, 6, 2], [8, 6, 4, 2], [2, 2, 2, 2]]
。对于这个问题,我最初的回答是不正确的,但是对于所有当前的测试用例都是正确的。