Стохастична матриця є матрицею ймовірностей , використовуваних в контексті ланцюгів Маркова.
Права стохастична матриця є матрицею , де кожен рядок суми в 1
.
Вліво стохастична матриця є матрицею , де кожен стовпець суми в 1
.
Двічі стохастична матриця є матрицею , де кожен рядок і кожен стовпець сум до 1
.
У цьому виклику ми будемо представляти ймовірності у відсотках за допомогою цілих чисел . Рядок або стовпець повинен у цьому випадку дорівнювати 100
і не 1
.
Ваша мета полягає в тому, щоб написати програму або функцію, яка, маючи вхідну квадратну матрицю цілих чисел, виводить одне з чотирьох значень, що вказує на те, що матриця є або право стохастичною, ліво стохастичною, подвійно стохастичною, або жодною з них.
Вхідні дані
Ви можете використовувати будь-яке правильне подання матриці, природної для вашої мови, для введення. Наприклад, список списків, рядок знаків, розділених комами, рядками, розділеними рядковими розривами тощо.
Матриця введення завжди буде квадратною і міститиме лише невід’ємні цілі числа. Вхідна матриця завжди буде як мінімум 1×1
.
Ви можете передавати дані, використовуючи STDIN
, як аргумент функції, або щось подібне.
Вихідні дані
Ви повинні вибрати чотири різних виходи, які відповідають правим стохастичним , лівим стохастичним , подвійним стохастичним або жодним із них . Ці виходи повинні бути постійними незалежно від того, який вхід передано. Ваша програма може не повертати різні виходи для одного і того ж випадку, наприклад, кажучи, що будь-яке негативне число відповідає жодному з них , недійсне.
Коротше кажучи, між вашим висновком та чотирма можливими випадками має бути відповідність 1 на 1. Деякі приклади цих чотирьох виходів будуть {1, 2, 3, 4}
або {[1,0], [0,1], [1,1], [0,0]}
навіть {right, left, doubly, none}
.
Вкажіть, будь ласка, у своїй відповіді чотири виходи, якими користується ваша програма.
Якщо матриця є подвійно стохастичною, то ви повинні повернути вихід, що відповідає подвійно стохастичному, а не правильному чи лівому стохастичному.
Ви можете надрукувати вихід STDOUT
, повернути його з функції чи чогось подібного.
Тестові справи
[100] => Doubly stochastic
[42] => None of those
[100 0 ] => Doubly stochastic
[0 100]
[4 8 15]
[16 23 42] => Left stochastic
[80 69 43]
[99 1 ] => Right stochastic
[2 98]
[1 2 3 4 ]
[5 6 7 8 ] => None of those
[9 10 11 12]
[13 14 15 16]
Оцінка балів
Це код-гольф , тому найкоротша відповідь у байтах виграє.