甲随机矩阵是马尔可夫链的上下文中使用的概率的矩阵。
甲右随机矩阵是矩阵,其中每一行款项1
。
一种 左随机矩阵是其中,每个列总和到1
。
一种 双随机矩阵是一个矩阵,其中每行和每列总和到1
。
在这个挑战中,我们将使用整数以百分比表示概率。在这种情况下,行或列的总和必须为100
不是1
。
您的目标是编写一个程序或函数,给定一个整数平方的矩阵作为输入,该程序或函数将输出四个值之一,这些值指示该矩阵是右随机,左随机,双随机或全不随机。
输入项
您可以使用对您的语言自然的矩阵的任何适当表示形式作为输入。例如,列表列表,用逗号分隔的值的字符串和用换行符分隔的行等。
输入矩阵将始终为正方形,并且仅包含非负整数。输入矩阵将始终至少为1×1
。
您可以使用STDIN
,作为函数参数或类似的参数传递输入。
输出量
您必须选择四个不同的输出,分别对应于右随机,左随机,双随机或全部都不输出。不管传递什么输入,这些输出必须是恒定的。对于相同的情况,您的程序可能不会返回不同的输出,例如,说任何负数对应于所有无效的输出。
简而言之,您的输出与四种可能的情况之间必须存在1对1的对应关系。这四个输出的一些示例为{1, 2, 3, 4}
or {[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]
计分
这是代码高尔夫球,因此最短的答案以字节为单位。