sabato 9 maggio 2015

Quesito con la Susi n. 924

Non tutte le ciambelle escono con il buco e non tutti i “Quesiti con la Susi” sono entusiasmanti. Due verità con le quali bisogna riuscire a convivere.

Nel novecentoventiquattresimo “Quesito con la Susi” non ci vedo veramente niente di interessante: si tratta di trovare il nome di un fiore di sette lettere, sapendo che tali lettere sono tra le 9 fornite tramite le iniziali di 9 fiori (è così che interpreto «in modo da poter leggere il nome del fiore con facilità»).

Naturalmente il gioco è dato in un'altra forma: Gianni e Susi sono da un fioraio che espone nove fiori in altrettanti vasi; ogni vaso ha un'etichetta che specifica il nome del fiore. Susi osserva che sono in ordine alfabetico e chiede al fioraio se li dispone sempre così. No, risponde lui. Un espediente per evitare che il lettore creda che nell'ordine dei fiori ci possa essere qualche preziosa informazione: se sono in ordine alfabetico, allora l'ordine non ha alcun significato particolare.

Ma il più bel fiore è quello che Gianni le sta per regalare. «Ma prima devi indovinare che fiore è», le dice. Susi chiede un aiuto e Gianni le risponde di disporre sette (dei nove) vasi «su questi scaffali». Sulla destra vediamo sette scaffali. Gianni specifica che «due vasi non c'entrano niente» e che la disposizione deve essere tale da consentire di «poter leggere il nome del fiore con facilità».

In un gioco come questo la cosa più difficile è interpretare le imprecisioni o la vaghezza di quello che viene detto. Per esempio, che significa «in modo da poter leggere facilmente il nome del fiore»? Ciò che è facile è relativo. Ma direi che l'intenzione di chi ha formulato il quesito era quella di suggerire che ciascuno scaffale dovesse tenere un solo vaso in modo che le iniziali (maiuscole) delle etichette, lette verticalmente dall'alto verso il basso, diano la soluzione.

Quindi il problema è questo: date 9 lettere, trovare il nome di un fiore composto da sette delle nove lettere fornite1.

Come dicevo, niente di entusiasmante.

L'approccio “digitale”

È banale: considerate tutte le sequenze di lunghezza sette che è possibile fare con nove simboli distinti2, usandoli solo una volta (cioè senza ripetizioni)3. Solo alcune di queste potranno essere parole, e solo una di questa dovrà essere il nome di un fiore. Quindi si tratta di cercare in un dizionario queste stringhe generate, in modo da scartare quelle che non sono parole (in italiano), e trovare, tra ciò che rimane, il nome di un fiore4.

Potremmo renderlo un minimo più interessante aggiungendo qualche regola per scartare in anticipo quelle che non possono essere parole italiane. Per esempio le regole, un sottoinsieme di quelle “complete” fatto sulla base delle lettere a disposizione (due a, b, c, e, i, l, m, v), potrebbero essere:

  • non può comparire il gruppo aa;
  • gli unici gruppi di due consonanti consentiti sono: bl, cl, vl, lm, lb, lc, lv, mb;
  • i gruppi lm, lb, lc, lv non possono comparire ad inizio parola;
  • nessuno dei gruppi di consonanti può apparire a fine parola;
  • non ci possono essere gruppi di tre o più consonanti.

L'imposizione di regole come queste dovrebbe fare in modo di creare parole leggibili in italiano (cioè che non violano le “leggi” che regolano la formazione delle parole italiane), sempre a partire dalle lettere a nostra disposizione.

Fatto ciò, ci serve un dizionario (un elenco di parole italiane “vere”) che contenga sicuramente tutti i fiori… E andare a vedere quale delle nostre stringhe è una parola e scegliere quella che corrisponde al nome di un fiore.

Possiamo invece partire dal dizionario e scremare le parole fino ad ottenere un elenco che si possa scorrere a occhio senza impazzire.

Come detto, ci serve un dizionario che contenga sicuramente il nome che stiamo cercando. Se non abbiamo un dizionario completo, è un po' difficile esserne sicuri. In questa pagina ho trovato un link ad una collezione di 280000 parole. Purtroppo non contiene iris ed eufrasia, quindi potrebbe anche non contenere il nome del fiore che ci interessa…

Comunque, scremiamo un po' e vediamo che esce fuori: prendiamo da quell'elenco solo le parole di sette lettere (ce ne sono 249855). Poi consideriamo solo quelle che sono formate da sette caratteri nell'elenco a, b, c, e, i, l, m, v6; restiamo con 174 parole. Scartiamo quelle in cui compaiono doppioni di b, c, e, i, l, m, v, perché possiamo usare queste lettere solo una volta7. Ora abbiamo un elenco di 17 parole:

alabama
amabile
amebica
amicale
baciala
baciale
baciava
calamai
calmava
calmavi
camelia
caviale
cembali
lambiva
malacia
maleica
meliaca

La parola camelia spicca perché si tratta proprio di un fiore; che io associo immediatamente a La signora delle camelie… cosa avrà voluto dire Gianni alla bella Susi?

In definitiva l'abbiamo risolto scavando e filtrando dati. Una noia. Un bravo enigmista si divertirà invece a trovare un anagramma di “cambi leva” le cui prime sette lettere siano il nome di un fiore…

Comunque 'sto quesito più che una ciambella (senza buco) mi sembra una ciambelva


  1. Poiché Susi non ha visto il fiore «più bello» che le regala Gianni, dobbiamo scartare i fiori che compaiono nel problema, nel caso fosse possibile comporre il nome di uno di questi con le lettere date. I fiori sono: anemone, azalea, begonia, ciclamino, eufrasia, iris, lavanda, margherita, violetta. (La cosa più interessante di questo gioco è che ho imparato il nome di un fiore che non conoscevo, l'eufrasia). Quelli di sette lettere sono anemone, begonia, lavanda. Nessuno di questi tre può essere scritto usando le lettere a disposizione (due a, b, c, e, i, l, m, v).

  2. Non vi fate confondere dal fatto che a voi sembrerà che una A sia pur sempre una A, che appaia in Anemone o che appaia in Azalea. Non è così: la A di Anemone è un simbolo diverso dalla A di Azalea… Dunque abbiamo 9 simboli (uno per ogni iniziale dei nomi dei fiori nei nove vasi).

  3. Le disposizioni semplici di 9 elementi di classe 7 sono “solo” 181440.

  4. Se avessimo un dizionario arricchito con annotazioni semantiche potremmo automatizzare anche l'ultimo passaggio. Più banalmente, se avessimo un dizionario con le definizioni, potrebbe bastare filtrare quelle in cui compare la parola “fiore”.

  5. Io ho usato awk 'length($1)==7 {print}' (dopo aver convertito gli accapo da stile-Mac a stile-Unix, cioè dopo aver eliminato il Carriage Return…), ma voi fate come vi pare.

  6. Io ho usato grep -E "[abceilmv]{7}", ma voi, di nuovo, fate come vi pare.

  7. Io ho usato grep -v -E "([bceilmv])[abceilmv]*\1", ma voi, come al solito, farete come meglio credete.

Nessun commento:

Posta un commento

Sii educato, costruisci con cura le frasi, rifletti prima di pubblicare, evita parolacce e offese dirette, non uscire dal tema, cerca di non omettere la punteggiatura, evita errori ortografici, rileggi quel che hai scritto.