Algoritmia Avanzada. Lenguajes y Sistemas Inform áticos 1. (4) Supongamos que queremos jugar al Nim con las siguientes reglas: cada jugador puede retirar un máximo de M fichas, siempre y cuando no repita la última jugada del contrincante. Escribe un algoritmo eficiente para calcular si disponemos de una estrategia ganadora o no. 2. (2) ¿Qué relación guardan la clave pública y la privada del algoritmo RSA? Comprueba que dicha relación se satisface para el par de claves (33,7) y (33,3). ¿Qué mensaje se oculta en el texto VNMASY si cada letra se ha sustituido por un número (A=1,B=2,. . . Ñ=15,. . . Z=26) y se ha cifrado con la clave (33,7)? 1 3. (4) Tenemos N trabajos que pueden ser realizados por la máquina M1 o por la M2, si bien tardan un tiempo distinto en realizar cada trabajo. Una asignación de trabajos se representa mediante un vector de N componentes y el coste total es el máximo de las dos máquinas. Por ejemplo, la asignación (2, 2, 1, 2) con la siguiente tabla de tiempos M1 M2 T1 4 2 T2 4 3 T3 3 4 T4 5 4 produce un coste 9. Escribe un algoritmo para calcular una cota optimista y otro para calcular una pesimista de las soluciones del tipo (x 1 , x2 , ..xn , ∗, .., ∗). Explica cómo los aplicarı́as a este ejemplo. . 1 A falta de calculadora, se puede usar que (x ∗ y ∗ z) %n = ((x ∗ y) %n ∗ z) %n.