Пьяное путешествие домой
В этом задании вы должны написать программу, которая имитирует пьяницу, спотыкающегося по дороге домой из бара.
Входные данные:
Входными данными будет матрица смежности (представляющая ориентированный граф), которая представляет пути, по которым пьяница может идти. В каждой локации пьяница выберет один путь случайным образом (каждый вариант имеет примерно равные шансы и не зависит от предыдущих вариантов выбора).
Предположим, что пьяница всегда начинается с бара (первая строка в матрице смежности).
Если пьяница заходит в тупик, можно предположить, что он либо добрался домой, либо был арестован за общественное опьянение, и программа должна вернуться на свой путь.
Можно предположить, что график всегда будет содержать хотя бы один тупик.
Можно также предположить, что пьяница всегда сможет выйти из бара (в первом ряду не все нули) и что если пьяница застрянет в каком-либо месте, то этот ряд будет представлен всеми нулями.
Выход:
Результатом будет путь, по которому пьяница пошел, пытаясь добраться домой. Значения для местоположений могут быть либо нулевыми, либо индексированными.
Примеры:
Input
[1,0,1,1]
[0,0,0,0]
[1,0,0,0]
[1,1,1,1]
Possible Outputs
[0,2,0,3,2,0,0,3,1]
[0,3,0,3,1]
Input
[0,1,1,1,0,1]
[1,0,1,0,1,1]
[0,0,0,0,0,0]
[0,0,0,0,0,1]
[1,0,0,0,0,0]
[0,0,0,0,0,0]
Possible outputs
[0,1,5]
[0,5]
[0,1,4,0,2]
[0,3,5]
[0,3,0,1,4,0,5]
Deterministic path:
Input
[0,0,1,0]
[0,0,0,1]
[0,1,0,0]
[0,0,0,0]
Output
[0,2,1,3]
[ '1011', '0000', '1000', '1111' ]
?
i
со всеми нулями, кроме столбца i
?
0
1,2,3,5
0
4