Visualizza il feed RSS

Titolo provvisorio...

C64 - Il numero di Sarah

Valuta questo inserimento
di pubblicato il 14-01-2019 alle 16:50 (229 Visite)
Con questo articolo dedicato ai cultori del retrocomputing, e in particolare al sempre ottimo Antonio, propongo un classico problema logico tratto da un best seller di enigmi e puzzle per C64: "The Commodore puzzle book - basic brainteasers" di Lee e Scrimshaw. Nell'articolo viene proposta e sviluppata una soluzione in BASIC V2 molto più completa di quella fornita dal testo.

Il semplice problema è il seguente: "la scorsa settimana, mentre stavamo navigando sullo yacht degli Henderson, Julie, Ken, Liz, Morris e Naomi (ovvero J, K, L, M, N) cercavano di ricordare il numero di telefono di Sarah. Tutti d'accordo sulla parte iniziale, ma nessuno ricordava esattamente le ultime quattro cifre. Ciascuno di loro fece una affermazione [inerente le sole ultime quattro cifre]:
J: "Il numero contiene almeno un 9".
K: "Il numero è molto maggiore di 5000".
L: "Il numero è palindromo (non cambia se letto da destra a sinistra o viceversa)".
M: "Si tratta di un numero pari".
N: "Il suo modulo gaussiano (la somma ricorsiva delle cifre) è pari a nove".
All'arrivo a casa, ho controllato il numero sulla rubrica e ho scoperto che tutte le affermazioni erano corrette, tranne una. Se avessi saputo chi aveva sbagliato, avrei potuto risalire immediatamente al numero in questione.

Qual è dunque il numero di Sarah, e chi ha prodotto l'asserzione sbagliata?".

La soluzione proposta dagli autori si limita sostanzialmente a generare tutti i numeri di quattro cifre, selezionando quelli che soddisfano esattamente quattro delle cinque condizioni stabilite dalle asserzioni J, K, L, M, N. L'unica euristica adottata consiste nel limitare a priori la ricerca ai soli numeri palindromi (condizione L), il che delimita il range di generazione ai valori tra 0 e 99 inclusi, rendendo immediatamente il loop principale più efficiente di un fattore cento rispetto all'implementazione più naïf. L'utilità del programma proposto dagli autori è ulteriormente limitata dal fatto che esso fornisce in output un mero elenco dei valori, come si vede nello screenshot, senza indicazione esplicita delle condizioni di volta in volta verificate. Nell'appendice dedicata alle soluzioni vere e proprie gli autori riportano poi una soluzione tabulare completa, ma calcolata manualmente con carta e penna.

Si invita il lettore a pensare ad una propria soluzione, confrontandola poi con quella suggerita nell'articolo completo, disponibile in PDF al seguente URL: http://sys64738.org/2018/12/il-numero-di-sarah/ dove è disponibile anche il codice allegato, in formato CBM Prg Studio.
Anteprime allegati Immagini allegate

aggiornamento da 28-01-2019 a 13:41 di M.A.W. 1968

Categorie
Libri , Programmazione , Scienza

Commenti