Alphametic
$$
$$
[size=150][tt]T W E L V E +[/tt]
[tt]T W E L V E +[/tt]
[tt]T W E L V E +[/tt]
[tt]T W E L V E +[/tt]
[tt]T W E L V E +[/tt]
[tt]T H I R T Y =[/tt]
[tt]=============[/tt]
[tt]N I N E T Y[/tt][/size]
Cordialmente, Alex
$$
[size=150][tt]T W E L V E +[/tt]
[tt]T W E L V E +[/tt]
[tt]T W E L V E +[/tt]
[tt]T W E L V E +[/tt]
[tt]T W E L V E +[/tt]
[tt]T H I R T Y =[/tt]
[tt]=============[/tt]
[tt]N I N E T Y[/tt][/size]
Cordialmente, Alex
Risposte
Bongiorno,
è una soluzione
ciao.
aldo
è una soluzione

ciao.
aldo
Eh, no
Penso che la spiegazione del giochino sia pleonastica però la scrivo lo stesso
L'obiettivo del quesito è quello di ricostruire l'operazione originaria sostituendo le cifre alle lettere.
Stessa lettera, stessa cifra; lettera diversa, cifra diversa; i numeri non iniziano mai per zero.
Cordialmente, Alex

Penso che la spiegazione del giochino sia pleonastica però la scrivo lo stesso

L'obiettivo del quesito è quello di ricostruire l'operazione originaria sostituendo le cifre alle lettere.
Stessa lettera, stessa cifra; lettera diversa, cifra diversa; i numeri non iniziano mai per zero.

Cordialmente, Alex
Bongiorno,
Sì, si era capito, ma senza spiegazioni la mia risposta poteva andare...
ciao.
aldo
Sì, si era capito, ma senza spiegazioni la mia risposta poteva andare...
ciao.
aldo
ciao.
aldo
"al_berto":
... la mia risposta poteva andare...
No


Cordialmente, Alex
Ma non facevi prima a scrivere i tre numeri (invece dell'elenco) ?
Cordialmente, Alex


Cordialmente, Alex
"Super Squirrel":
Comunque mi chiedo come abbiano fatto a creare un puzzle del genere, non credo sia tanto facile... anche se il giusto algoritmo potrebbe aiutare nella ricerca di questi "gioiellini"!
Il quiz in oggetto è in "lingua inglese",
che ne diresti di scrivere qualche linea di codice per trovarne uno "in italiano" ?

@Super Squirrel
Cordialmente, Alex
Cordialmente, Alex
"axpgn":
L'alphametica utilizza come simboli solo le lettere e il quesito deve avere senso compiuto.
Ah ok, quindi è una cosa un po' diversa dal classico calcolo enigmatico che si può trovare sulla settimana enigmistica!

Un paio di domande: si possono utilizzare anche le altre operazioni aritmetiche? La soluzione deve essere unica, giusto?
In ogni caso presumo che non tutti i puzzle risultano essere dei giochi di logica stimolanti, vuoi perché banali o perché magari il ragionamento non porta da nessuna parte!
"Umby":
che ne diresti di scrivere qualche linea di codice per trovarne uno "in italiano" ? (...sperando che ci siano...)
La parte che si occupa della risoluzione del puzzle non dovrebbe essere molto complicata. Bisognerebbe poi inserire manualmente le associazioni tra il numero e il vocabolo italiano corrispondente. Ma la cosa più difficile credo sia la scrittura di un algoritmo che vada a definire la ricerca di questi "casi"!

"Super Squirrel":
[quote="axpgn"]L'alphametica utilizza come simboli solo le lettere e il quesito deve avere senso compiuto.
Ah ok, quindi è una cosa un po' diversa dal classico calcolo enigmatico che si può trovare sulla settimana enigmistica!

Come detto, l'alphametica è un "di cui", una "specializzazione" della più generale criptoaritmetica, la quale, a sua volta, può essere considerata la sezione ludico-matematica della crittologia (che è diventata centrale, anzi fondamentale, nella vita di oggi tutta digitale, come sai meglio di me

"Super Squirrel":
Un paio di domande: si possono utilizzare anche le altre operazioni aritmetiche? La soluzione deve essere unica, giusto?
Le regole fondamentali sono quelle: stessa lettera, stessa cifra e mai zero per primo oltre al fatto che si deve produrre "qualcosa" che abbia un senso, però come in tutti i giochi (ed anche nella vita


È buona norma che la soluzione sia unica però già qui abbiamo una divisione: i puristi non ammettono deroghe a ciò, mentre tutti gli altri accettano anche soluzioni "multiple" entro certi limiti (può capitare di avere più soluzioni, o perché sono relativamente poche o perché vengono posti altri vincoli che le rendono uniche, per esempio "trovare il massimo")
L'importante è che il puzzle sia "bello"

"Super Squirrel":
... non tutti i puzzle risultano essere dei giochi di logica stimolanti, vuoi perché banali o perché magari il ragionamento non porta da nessuna parte!
Cordialmente, Alex
P.S.: un criptaritmo superclassico che avevo postato è questo (riposto l'immagine sparita)
Questo è molto, molto, molto tosto (se fatto a mano

"Super Squirrel":
La parte che si occupa della risoluzione del puzzle non dovrebbe essere molto complicata.
mbè... se intendi risolverlo, significa che qualcuno prima di te, lo ha creato... (...intendevo fare questo...)
Per la risoluzione poi, dipende dal grado di risoluzione che intendi sviluppare:
(Brute Force) -> Semplice nella scrittura del codice, efficienza quasi nulla in esecuzione
(Metodologici) --> Più complessi nella scrittura del codice, ma maggiore efficienza.
Pensa ad un risolutore sudoku:
(Brute Force): ci puoi impiegare anche un anno, nella soluzione di un puzzle !!!
(Metodologici): Candidati in singola cella / Candidati singoli riga-colonna-quadrato / Naked subset (.. e così via...) più inserisci una nuova regola, più eviti di andare in brute force, più veloce sarà la risposta.
Direi che un buon risolutore, termina in brute force, solo nell'ultimo stadio (meglio se non ci arriva mai).
"Super Squirrel":
Bisognerebbe poi inserire manualmente le associazioni tra il numero e il vocabolo italiano corrispondente. Ma la cosa più difficile credo sia la scrittura di un algoritmo che vada a definire la ricerca di questi "casi"!
Diciamo che devi crearti un "vocabolario" delle definizioni, in rete, ne troverai diversi.
Oppure te lo crei te:
ad esempio, potresti avere il vocabolario dei calciatori del Napoli
(MERET, RUI, OSPINA, MILIK), e li fai girare, sperando di trovare
una soluzione, (.. difficile, perchè sono pochi i membri del dizionario ..)
oppure: dizionario italiano
oppure: dizionario dei numeri (UNO, DUE, ... CENTO, ... MILLE)
puoi inventarti quello che vuoi....
Suggerimenti ? Consigli ? Riflessioni ?

"Umby":
mbè... se intendi risolverlo, significa che qualcuno prima di te, lo ha creato... (...intendevo fare questo...)
Lo so, ma una volta implementato un algoritmo di risoluzione, puoi utilizzarlo per testare un generico puzzle per vedere se ha soluzioni e nel caso quante ne sono.
"Umby":
Per la risoluzione poi, dipende dal grado di risoluzione che intendi sviluppare:
(Brute Force) -> Semplice nella scrittura del codice, efficienza quasi nulla in esecuzione
(Metodologici) --> Più complessi nella scrittura del codice, ma maggiore efficienza.
In linea di massima è così, anche se bisogna sempre valutare caso per caso. Per esempio in questo contesto i tentativi da fare saranno "solo" D(10,k) (per un massimo di D(10,10)=3628800 disposizioni), senza dimenticare che in questo caso non sarebbe affatto facile impostare qualcosa di "metodologico".
"Umby":
Pensa ad un risolutore sudoku:
(Brute Force): ci puoi impiegare anche un anno, nella soluzione di un puzzle !!!
(Metodologici): Candidati in singola cella / Candidati singoli riga-colonna-quadrato / Naked subset (.. e così via...) più inserisci una nuova regola, più eviti di andare in brute force, più veloce sarà la risposta.
Direi che un buon risolutore, termina in brute force, solo nell'ultimo stadio (meglio se non ci arriva mai).
Si tratta di un progetto che ho già affrontato in un recente passato, arrivando ad implementare anche strategie risolutive avanzate (tipo basic fish, x-cycles, medusa-3D, xy-chains, ...). Ovviamente come extrema ratio ho previsto anche una strategia per tentativi, anche se si tratta di un brute force "intelligente".
Detto ciò ti assicuro che anche in tal caso non esiste alcuna differenza sostanziale in termini di tempo tra approccio "metodologico" e "brute force", anzi spesso risulta più veloce quest'ultimo, ed in ogni caso stiamo sempre nell'ordine dei decimi di secondo.
"Umby":
oppure: dizionario dei numeri (UNO, DUE, ... CENTO, ... MILLE)
L'idea è questa, ma come già detto in precedenza
"Super Squirrel":
la cosa più difficile credo sia la scrittura di un algoritmo che vada a definire la ricerca di questi "casi"!
Per esempio, volendo utilizzare come operazione la sola addizione, quanti addendi considerare? Come raggrupparli?
@axpgn
Grazie per le informazioni!

"Super Squirrel":
Ovviamente come extrema ratio ho previsto anche una strategia per tentativi, anche se si tratta di un brute force "intelligente".
Detto ciò ti assicuro che anche in tal caso non esiste alcuna differenza sostanziale in termini di tempo tra approccio "metodologico" e "brute force", anzi spesso risulta più veloce quest'ultimo, ed in ogni caso stiamo sempre nell'ordine dei decimi di secondo.
mahh.... concordo su quasi tutto, tranne che "in rosso".
Ti dico di più,
per valutare la "bontà" di un risolutore, su alcuni siti specializzati in sudoku, inseriscono un database con 100 / 200 / 1000 sudoku di diverse tipologie di difficoltà, e quelli che superano un maggior numero di soluzioni,
vengono considerati i migliori.
E tra le metodologie di ricerca, si esclude il sistema "brute force", proprio perchè non viene considerato un metodo "intelligente" di risoluzione.
Sulla velocità di esecuzione, nutro ancora più perplessità.
Pensa ad uno schema vuoto di 70 numeri. Sembra piccolo il numero $C(70,9)$, ma in realtà è bello pesante.
"Super Squirrel":
Per esempio, volendo utilizzare come operazione la sola addizione, quanti addendi considerare? Come raggrupparli?
Mi sono posto anche io la domanda:
la mia idea era quella di impostare un parametro iniziale, (diciamo... da un minimo di 3 elementi, non so... ad un massimo di 10[ il topic ha 6 addendi ]). Non saprei, dipende, se si trovano o meno soluzioni...
Partirei con la sola addizione (in parallelo al quesito iniziale del topic).
Come raggrupparli ? .... direi combinazioni con ripetizione (vedi twelve / twelve)
"Umby":
Sembra piccolo il numero $C(70,9)$, ma in realtà è bello pesante.
??? vabbè, il calcolo è errato... era solo per dire, che si tratta di un bel numero grande...

"Umby":
mahh.... concordo su quasi tutto, tranne che "in rosso".
Ti dico di più,
per valutare la "bontà" di un risolutore, su alcuni siti specializzati in sudoku, inseriscono un database con 100 / 200 / 1000 sudoku di diverse tipologie di difficoltà, e quelli che superano un maggior numero di soluzioni,
vengono considerati i migliori.
E tra le metodologie di ricerca, si esclude il sistema "brute force", proprio perchè non viene considerato un metodo "intelligente" di risoluzione.
Sulla velocità di esecuzione, nutro ancora più perplessità.
Pensa ad uno schema vuoto di 70 numeri. Sembra piccolo il numero C(70,9), ma in realtà è bello pesante.
Innanzitutto con "brute force intelligente" intendo una strategia per tentativi che parte dai candidati di una cella vuota A per poi andare ad aggiornare i candidati delle celle nella sfera di influenza di A. A questo punto se qualche cella vuota presenta un solo candidato la aggiorno pure, altrimenti continuo con i tentativi su una seconda cella vuota B e così via.
Ti faccio poi notare che alcune delle strategie avanzate che ho menzionato nel precedente post presentano una complessità computazionale non da poco, quindi non deve sorprendere il fatto che in alcuni casi la sola forza bruta risulta più veloce.
Per esempio prendendo il "sudoku più difficile del mondo" e disattivando tutte le strategie, lasciando solo quella per tentativi, il tempo di esecuzione è di soli 0.17s.
"Umby":
Mi sono posto anche io la domanda:
la mia idea era quella di impostare un parametro iniziale, (diciamo... da un minimo di 3 elementi, non so... ad un massimo di 10[ il topic ha 6 addendi ]). Non saprei, dipende, se si trovano o meno soluzioni...
Partirei con la sola addizione (in parallelo al quesito iniziale del topic).
Come raggrupparli ? .... direi combinazioni con ripetizione (vedi twelve / twelve)
Può essere un inizio, appena ho tempo comincio a buttare giù qualche linea di codice!
