В треугольнике Паскаля каждое число является суммой двух чисел непосредственно над ним, рассматривая пустые пятна как ноль:
Вращая треугольник, мы можем вырезать квадратные матрицы различных размеров и поворотов, которые я буду называть матрицами Паскаля . Обратите внимание, что эти матрицы всегда должны содержать верхнюю . Вот некоторые примеры:
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
Задание
Учитывая квадратную матрицу, содержащую положительные числа в любом приемлемом формате, решите, является ли она матрицей Паскаля .
Решить означает, что либо возвращать истинные или ложные значения в зависимости от того, является ли входная матрица Паскаля , либо фиксировать два постоянных значения и возвращать одно для истинных входов, а другое для ложных входов.
Это код-гольф , поэтому старайтесь использовать как можно меньше байтов на выбранном вами языке. Самый короткий код на каждом языке выигрывает, поэтому я не приму ответ.
Контрольные примеры
Правда
[[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]]
источник
[[40, 20, 8, 2], [20, 12, 6, 2], [8, 6, 4, 2], [2, 2, 2, 2]]
. Мой первоначальный ответ был неверно правдивым для этого, но правильным для всех текущих тестовых случаев.Ответы:
Брахилог ,
282423 байтаЭто чувствует себя довольно долго, но здесь это все равно
{|↔}\↰₁{k{a₀ᶠ+ᵐ}ᵐ⊆?h=₁}
объяснение
Попробуйте онлайн!
источник
JavaScript (ES6), 114 байт
Попробуйте онлайн!
источник
MATL , 17 байт
Попробуйте онлайн! Или проверьте все тестовые случаи .
Выходы
1
для матриц Паскаля, в0
противном случае.объяснение
источник
R 104 байта
Попробуйте онлайн!
Противный ...
Создает матрицу канонического Паскаля
Z
с размерами , равнымиm
, а затем проверяет , если входная матрицаm
являетсяidentical
дляany
вращенийZ
.источник
Древесный уголь , 41 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Если максимум его первого ряда больше 1,
затем переверните входной массив.
Если максимум его первого столбца больше 1,
затем отразите входной массив.
Зацикливание на элементах входного массива и вывод минимального результата (т. Е. Логического А всех результатов),
сравнивая каждое значение с 1, если оно находится в первой строке, в противном случае сумма строки выше до и включая ячейку выше.
источник
Python 2 , 129 байт
Попробуйте онлайн!
Возвращает
True
ifM
- это матрица Паскаля, иначе0
.источник
05AB1E , 29 байт
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
Котлин , 269 байт
Попробуйте онлайн!
источник
Юлия 0,7 , 78 байт
Попробуйте онлайн!
источник
Java (JDK) , 234 байта
Попробуйте онлайн!
кредиты
источник
i==s||j==S
доi==s|j==S
.m->{int l=m.length,i=0,j;for(;i<l;i++)for(j=0;j<l;j++)p=(i<1|j<1?m[i][j]<2:m[i][j]==m[i-1][j]+m[i][j-1])?p:0;return p>0;}
(122 байта)Желе , 22 байта
Попробуйте онлайн!
объяснение
Вспомогательная ссылка, проверяет, действительно ли это вращение матрицы
Главная ссылка
источник