El viaje del borracho a casa
En este desafío, debes escribir un programa que simule a un borracho tropezando camino a casa desde el bar.
Entrada:
La entrada será una matriz de adyacencia (que representa un gráfico dirigido) que representa los caminos que puede tomar el borracho. En cada ubicación, el borracho elegirá un camino al azar (cada opción tiene aproximadamente la misma probabilidad y es independiente de las elecciones anteriores) a seguir.
Suponga que el borracho siempre comienza en la barra (primera fila en la matriz de adyacencia).
Si el borracho entra en un callejón sin salida, se puede suponer que se dirigió a su casa o que fue arrestado por intoxicación pública y que el programa debería retomar su camino.
Se puede suponer que el gráfico siempre contendrá al menos un callejón sin salida.
También se puede suponer que el borracho siempre podrá salir de la barra (la primera fila no será todos ceros) y que si el borracho se atascara en una ubicación, la fila estaría representada por todos los ceros.
Salida:
La salida será el camino que tomó el borracho en su intento de regresar a casa. Los valores para las ubicaciones pueden ser cero o uno indexado.
Ejemplos:
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
con todos los ceros excepto en la columna i
?
0
enlaces a 1,2,3,5
, pero la última salida haya que pasar de 0
a4