2010-04-23 8 views

Respuesta

2

se supone Esta tarea que hay que resolver sin una computadora.

Sin embargo, si generaliza el caso, entonces, supongo que puede hacerlo con la búsqueda de gráficos, pero debe tener en cuenta el tamaño del gráfico. Si cada vértice es el "estado", entonces el número de estos estados se estima como 2 N ⋅L, donde N es el número de personas y L es la longitud de la linterna. Cada estado contiene información, de qué lado está cada persona, y de la duración restante de la linterna. Si hay un camino desde el estado inicial hasta uno de esos estados donde todos están del lado del campamento, entonces este camino es la solución.

Esa es la manera más obvia de crear estados, pero quizás pueda hacerlo de una manera más eficiente (el número actual de estados, por lo tanto, el tiempo de ejecución, es exponencial al tamaño de entrada).

Sin embargo, para los tamaños tan pequeños como en la muestra que proporcionó, el tiempo de ejecución exponencial (con gráficos) es aceptable. Al entrevistador puede gustarle, si sugiere una solución programática en lugar de hacerlo a mano.

+0

Longitud de la linterna ??? Supongo que se refería a la longitud del puente o al tiempo de ejecución de la linterna. – sharptooth

+0

Se refiere al tiempo que queda en la linterna (o cuando lo pones en el tiempo de ejecución de la linterna). – NickPoussin

+0

Gracias Pavel. Su explicación del estado "Cada estado contiene información, de qué lado está cada persona y la duración restante de la linterna" me ayudó mucho. Creo que intentaré programar esto para divertirme mañana. – NickPoussin

0

Es posible que desee mirar EWD 1255.

+0

TheMachineCharmer, Gracias por el enlace, me pareció una lectura interesante. Si entiendo lo que el Prof Dijkstra está transmitiendo, entonces, no hay "alfas" en el problema del Puente de Cuerda. Tal vez hay y yo simplemente no los veo? – NickPoussin

+0

Acabo de publicar como algo relacionado e informativo. Hecho c-wiki. :RE –

Cuestiones relacionadas