Definiciones:
El subíndice [math] t \ in \ mathbb {N} \ cup \ {0 \} [/ math] en [math] r_t [/ math], [math] s_t [/ math] y [math] p_t [/ matemática] designa el valor de esas variables en ese número redondo. Inicialmente hay [math] r_0 = [/ math] gameTowers torres y [matemáticas] s_0 = [/ matemáticas] juego Soldados soldados. Cada soldado comienza con [matemáticas] 1 [/ matemáticas] punto de vida (vida); en otras palabras, muere si le disparan al menos [matemáticas] 1 [/ matemáticas] tiempo. Cada soldado vivo puede disparar [matemáticas] 1 [/ matemáticas] tiempo por ronda, solo en una torre que estaba viva al comienzo de la ronda. Cada torre comienza con [math] h = [/ math] numHits puntos de vida (vida), por lo que el equipo de la torre comienza con [math] p_0 = r_0h [/ math] puntos de vida total. Cada torre viviente puede disparar [math] k = [/ math] numKills veces por ronda, solo a los soldados que estaban vivos al comienzo de la ronda. En cada ronda, primero todos los soldados atacan simultáneamente, luego todas las torres atacan simultáneamente.
Hay al menos cuatro casos a los que podría referirse esta pregunta, dependiendo de los objetivos del equipo de la torre [matemáticas] T [/ matemáticas] y el equipo de soldados [matemáticas] S [/ matemáticas].
Caso A:
[math] T [/ math] está tratando de minimizar el número de torres destruidas, mientras que [math] S [/ math] está tratando de maximizar el número de torres destruidas. Este parece ser el caso más natural.
Caso B:
Tanto [math] T [/ math] como [math] S [/ math] están tratando de maximizar el número de torres destruidas.
- ¿Cuáles son los mejores juegos que pueden jugar dos personas?
- ¿Minecraft es educativo?
- Si quiero tener un videojuego creado para mí. ¿Con quién hablo?
- ¿Qué es mejor: 3DS XL o PS VITA?
- ¿Hay juegos creados por un grupo de desarrolladores de juegos de primer nivel, como un equipo de ensueño?
Caso C:
Tanto [math] T [/ math] como [math] S [/ math] están tratando de minimizar el número de torres destruidas.
Caso D:
[math] T [/ math] está tratando de maximizar el número de torres destruidas, mientras que [math] S [/ math] está tratando de minimizar el número de torres destruidas. Este parece ser el caso más antinatural.
Responder:
Estas son las estrategias óptimas para [matemáticas] T [/ matemáticas] y [matemáticas] S [/ matemáticas] en una ronda determinada. También se proporciona el conteo de la torre y el soldado en cada ronda si se emplean estas estrategias.
Caso A:
[matemáticas] T [/ matemáticas]:
No hay dos disparos de torre en el mismo soldado.
[matemáticas] S [/ matemáticas]:
Enfoca exactamente tantos disparos en la torre más débil como sea necesario para destruir la torre más débil. Con los disparos restantes, enfoca exactamente tantos disparos como sean necesarios para destruir la próxima torre más débil. Si la siguiente más débil también se destruye, concéntrate en la próxima torre más débil, y así sucesivamente.
[matemáticas] r_t = \ begin {cases} \ text {gameTowers} & \ text {,} t = 0 \\ \ lceil \ frac {p_t} {h} \ rceil & \ text {, de lo contrario} \ end {cases} [/matemáticas]
[matemáticas] s_t = \ begin {cases} \ text {gameSoldiers} & \ text {,} t = 0 \\ \ max {(0, s_ {t-1} -r_tk)} & \ text {, de lo contrario} \ end {cases} [/ math]
[matemáticas] p_t = \ begin {cases} r_0h & \ text {,} t = 0 \\ \ max {(0, p_ {t-1} -s_ {t-1})} & \ text {, de lo contrario} \ end {cases} [/ math]
Caso B:
[matemáticas] T [/ matemáticas]:
Todas las torres disparan al mismo soldado.
[matemáticas] S [/ matemáticas]:
Enfoca exactamente tantos disparos en la torre más débil como sea necesario para destruir la torre más débil. Con los disparos restantes, enfoca exactamente tantos disparos como sean necesarios para destruir la próxima torre más débil. Si la siguiente más débil también se destruye, concéntrate en la próxima torre más débil, y así sucesivamente.
[matemáticas] r_t = \ begin {cases} \ text {gameTowers} & \ text {,} t = 0 \\ \ lceil \ frac {p_t} {h} \ rceil & \ text {, de lo contrario} \ end {cases} [/matemáticas]
[matemáticas] s_t = \ begin {cases} \ text {gameSoldiers} & \ text {,} t = 0 \\ s_ {t-1} & \ text {,} r_t = 0 \\ \ max {(0, s_ {t-1} -1)} & \ text {, de lo contrario} \ end {cases} [/ math]
[matemáticas] p_t = \ begin {cases} r_0h & \ text {,} t = 0 \\ \ max {(0, p_ {t-1} -s_ {t-1})} & \ text {, de lo contrario} \ end {cases} [/ math]
Caso C:
[matemáticas] T [/ matemáticas]:
No hay dos disparos de torre en el mismo soldado.
[matemáticas] S [/ matemáticas]:
En general, distribuya los disparos de la manera más uniforme posible entre las torres (nunca debe haber más de [matemática] 1 [/ matemática] de diferencia de puntos de vida entre dos torres). Sin embargo, tan pronto como una torre llega a [matemáticas] 0 [/ matemáticas] puntos de golpe en una ronda, todos los disparos restantes en la ronda están en esa torre recién muerta.
[matemáticas] r_t = \ begin {cases} \ text {gameTowers} & \ text {,} t = 0 \\ p_t & \ text {,} s_ {t-1}> 0, r_ {t-1}> p_ {t-1} -s_ {t-1} \\ r_ {t-1} & \ text {, de lo contrario} \ end {cases} [/ math]
[matemáticas] s_t = \ begin {cases} \ text {gameSoldiers} & \ text {,} t = 0 \\ \ max {(0, s_ {t-1} -r_tk)} & \ text {, de lo contrario} \ end {cases} [/ math]
[matemáticas] p_t = \ begin {cases} r_0h & \ text {,} t = 0 \\ \ max {(0, r_ {t-1} -1)} & \ text {,} s_ {t-1} > 0, r_ {t-1}> p_ {t-1} -s_ {t-1} \\ \ max {(0, p_ {t-1} -s_ {t-1})} & \ text { , de lo contrario} \ end {cases} [/ math]
Caso D:
[matemáticas] T [/ matemáticas]:
Todas las torres disparan al mismo soldado.
[matemáticas] S [/ matemáticas]:
En general, distribuya los disparos de la manera más uniforme posible entre las torres (nunca debe haber más de [matemática] 1 [/ matemática] de diferencia de puntos de vida entre dos torres). Sin embargo, tan pronto como una torre llega a [matemáticas] 0 [/ matemáticas] puntos de golpe en una ronda, todos los disparos restantes en la ronda están en esa torre recién muerta.
[matemáticas] r_t = \ begin {cases} \ text {gameTowers} & \ text {,} t = 0 \\ p_t & \ text {,} s_ {t-1}> 0, r_ {t-1}> p_ {t-1} -s_ {t-1} \\ r_ {t-1} & \ text {, de lo contrario} \ end {cases} [/ math]
[matemáticas] s_t = \ begin {cases} \ text {gameSoldiers} & \ text {,} t = 0 \\ s_ {t-1} & \ text {,} r_t = 0 \\ \ max {(0, s_ {t-1} -1)} & \ text {, de lo contrario} \ end {cases} [/ math]
[matemáticas] p_t = \ begin {cases} r_0h & \ text {,} t = 0 \\ \ max {(0, r_ {t-1} -1)} & \ text {,} s_ {t-1} > 0, r_ {t-1}> p_ {t-1} -s_ {t-1} \\ \ max {(0, p_ {t-1} -s_ {t-1})} & \ text { , de lo contrario} \ end {cases} [/ math]