A jornada de bêbado em casa
Neste desafio, você deve escrever um programa que simule um bêbado tropeçando no caminho de volta para casa, vindo do bar.
Entrada:
A entrada será uma matriz de adjacência (representando um gráfico direcionado) que representa os caminhos que o bêbado pode seguir. Em cada local, o bêbado escolherá um caminho aleatoriamente (cada opção tem uma chance aproximadamente igual e é independente das escolhas anteriores) a seguir.
Suponha que o bêbado sempre comece na barra (primeira linha na matriz adjacente).
Se o bêbado entra em um beco sem saída, pode-se supor que ele voltou para casa ou foi preso por intoxicação pública e o programa deve retornar seu caminho.
Pode-se supor que o gráfico sempre contenha pelo menos um beco sem saída.
Também se pode presumir que o bêbado sempre poderá sair da barra (a primeira linha não será todos os zeros) e que, se o bêbado ficar preso em um local, a linha será representada por todos os zeros.
Saída:
O resultado será o caminho que o bêbado tomou na tentativa de voltar para casa. Os valores para os locais podem ser zero ou um indexado.
Exemplos:
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
com todos os zeros, exceto na coluna i
?
0
links para 1,2,3,5
, mas a última saída foi 0
para4