Questo post fa parte dell'Area codifica
Leggere le regole prima di continuare.
-------
Problema: frase cifrata
Alfabeto utilizzato: inglese, no numeri
Lingua: italiano
Complessità: bassa
Vale 1 punto
-------
Testo del problema (9,2,6):
NGVWFMNQX - SY - OBRXSV
------
E' il primo post della sezione, quindi do subito un suggerimento: l'ordine delle lettere non è stato modificato
Vincitore, olbaid aka Gabriele

7 commenti:
uhm.. vediamo. :
1. la soluzione NON si trova traslando l'intero alfabeto di una costante.
applicando il codice:
strcpy(frase,"NGVWFMNQZ SY OBRXSV");
for(ind_alp=0;ind_alp<LUNG_ALPHA;ind_alp++)
{
for(ind_frase=0;ind_frase<LUNG_FRASE;ind_frase++)
{
carat=frase[ind_frase]+ind_alp;
if(carat>'Z')
carat-=LUNG_ALPHA;
printf("%c",carat));
}
printf("\n");
}
si ottengono tutte le trasposizioni dell'enigma per una costante..
2. supponendo l'utilizzo di una frase usata per una corrispondenza biettiva per ogni lettera, mi sembra ovvoi che la detta frase debba contenere tutte le lettere dell'alfabeto inglese, quindi mi sono ricordato che il tipico pangram (frase con tutte le lettere dell'alfabeto) inglese è "the quick brown fox jumps over the lazy dog".. ma nula neanche qui.. di pangrams ce ne sono a migliaia, ma semmai la chiave fosse uno di questi dubiterei fosse uno diverso dal "quick brown fox.." quindi
conclusioni:
non ho la piu pallida idea di che altro provare....
confermo, non è ottenuta per addizione "di costante"; inoltre aggiungo che non è stata usata nessuna chiave generatrice.
Posso svelare però che il problema 'potrebbe' far uso di una serie numerica intera a segno costante
Ho provato ad " ideare " un alfabeto alternativo, supponendo come prima lettera la N, in quanto prima lettera che si può leggere nell'indovinello.
Ne segue che la O è la seconda, la P è la terza...la A è la quattordicesima e la M è la ventiseiesima.
Ho poi cercato la posizione numerica delle lettere nell'indivinello, scrivendo quindi questo:
14 7 22 23 6 13 14 17 24 per NGVWFMNQX
19 25 per SY
e infine
15 2 18 24 19 23 per OBRXSW
sono andato a ricercare queste posizioni nell'alfabeto " normale ", senza però ottenere risultati soddisfacenti:
ATIJSZADK FL BOEKFJ
ritento, sarò piu' fortunato :D
quel che hai fatto in questo modo è, in qualche modo, trasporre l'alfabeto in modo omogeneo. Il mio consiglio è quello di focalizzare l'attenzione sulla distanza che hanno le lettere rispetto all'alfabeto originale.
Mi spiego meglio: non ho usato un alfabeto le cui lettere distano dall'originale in modo uniforme, ma ognuna ha una distanza diversa (la variazione di tale distanza non è comunque casuale).
Ultimo consiglio, non partire dall'alfabeto ma dalla frase per cercare questa variazione di "distanza". Se riesci ad individuare la prima lettera il gioco è fatto
Allora mi sa che la soluzione è "MESSAGGIO IN CODICE"...partendo dalla prima lettera la n sottrarre 1 e poi procedere avanti sottraendone sempre uno in +.....
noooooooooooooooooooooooooooooooooo......
dopo ore di sonno perse arriva lui e mi rovina tutto sobsobsob....
RISPOSTA ESATTA! THE WINNER IS olbaid, il nostro Gabriele!
posto qui il codice utilizzato per la generazione del messaggio criptato:
-------- C Code ---------
char msg[]="MESSAGGIO IN CODICE";
int pos=1,i=0;
while(msg[i]!='\0')
{
if(msg[i]!=' ')
{
msg[i]=(msg[i]-PRIMA_L+pos)%LUNGH_ALF+PRIMA_L;
pos++;
}
i++;
}
Olbaid guadagna un punto in classifica
Posta un commento