Noticias:

Sucesos: Diva, Gilles, Risl y NN entran en un bar. El camarero les mira y se pregunta: "¿Qué es esto? ¿Una especie de chiste?"

Menú Principal

Universidad gratuita online: Udacity

Iniciado por Bill, 21 de Abril de 2012, 14:18

0 Miembros y 1 Visitante están viendo este tema.

Maik

Buscando en Google.

Y el tiempo que me sobró me hice una paja, me hice de comer y estuve haciendo el moñas por teléfono. Omito el orden en el que hice esas cosas, a ver si lo adivinas.


neoprogram

Cita de: ---------- en 23 de Abril de 2012, 12:41
¿Cómo lo resolviste? Así genéricamente...

Yo hice C1 xor C2, dividí en segmentos de 7 bits, y de ahí partí de varias informaciones básicas: si el byte es 0, entonces el carácter de ambos mensajes es el mismo. Además sabía que todas las letras válidas el primer bit es 1, en cambio los caracteres de separación (espacios y demás) el primero es 0, entonces si el primer bit de cada carácter es 1, significa que en esa posición hay un separador en alguno de los dos mensajes. A eso añadí saber que el espacio es el separador más común y es 0100000, así que dónde había separadores podía sacar con bastante seguridad la letra de esa posición en alguno de los dos mensajes. Además, el segundo bit me dice si la letra es mayúscula o minúscula, así que me dí cuenta de que al final había varias... Reduje el problema a 5 bits para las letras, y en el final entre mayúsculas y espacios me dí cuenta de que lo que tenía que haber ahí era nombres. Así que en lugar de comenzar a probar con palabras comunes y un ataque diccionario, probé directamente Claude Shannon... y me valió John von Neumann por el otro lado, y los paréntesis ;) Y de ahí fuí tirando del hilo sacando caracteres.

¿Cómo lo hiciste tú?

Lo hice menos elaborado basándome en ataques de diccionario en el XOR de los Cs  :vergu: . Me monté un programa que listaba sólo soluciones que tuvieran conjuntos de caracteres con posible sentido para una cadena dada y que permitiese guardar zonas ya resueltas. Además en la primera prueba sobre ciertas palabras asumía que lo más probable es que no fueran principio de línea (minúsculas) y separada por espacios. Como los espacios no coincidían (tenía en consideración las zonas de caracter nulo), los demás símbolos de puntuación salían solos y me daban trozos de palabra en el otro texto para tirar del hilo.

Lo que me fastidió un poco fue el tema de los paréntesis y los espacios del final, pero lo demás salió bien.  ^^:




たとえばここには愛すべき声があってあたしはそれすた守れなくて

Bill

¿Ya has pillado la forma de hacer la Challenge Question de la unidad 2?

neoprogram

Cita de: ---------- en 26 de Abril de 2012, 00:06
¿Ya has pillado la forma de hacer la Challenge Question de la unidad 2?

He sacado una forma que me ha funcionado basándome en la autocorrelación de la secuencia.  ^^:

¿Te envía el hw-2.4? Me funciona con los casos de prueba pero como a mucha gente a la hora de enviar me dice que hay un error en la función  :huh:




たとえばここには愛すべき声があってあたしはそれすた守れなくて

neoprogram

Cita de: neoprogram en 26 de Abril de 2012, 03:25
¿Te envía el hw-2.4? Me funciona con los casos de prueba pero como a mucha gente a la hora de enviar me dice que hay un error en la función  :huh:

Parece ser que esto lo acaban de arreglar  :P  ^^:




たとえばここには愛すべき声があってあたしはそれすた守れなくて

Últimos mensajes