Articolo pubblicato sul n. 64 di MCmicrocomputer (Edizioni Technimedia Srl - Roma) nel giugno 1987 E giochiamo...
Come promesso trenta giorni orsono, questo mese appunti di
informatica ospiterà tra le sue pagine alcune lettere
giunte in redazione dopo l'articolo Non siamo dunque nell'informatica pura, ma se i lettori di questa rubrica sono tanto numerofili occorre accontentarli. Pubblichiamo qui di seguito le lettere più interessanti (ahimè, alcune contenenti altri giochini...) aspettando di vedere come andrà a finire. Ragazzi, se volete una rubrica di giochini basta dirlo. Scriveteci.
Il disperato
Carissimo Andrea, il motivo per cui ti scrivo ti farà forse sorridere, ma il fatto è che ti ho inviato queste quattro righe per chiederti di inviarmi l'indirizzo o se vuoi di inviare ciò che scrivo di seguito ad Antonio Cunei di Monfalcone e la ragione di una simile "scandalosa" richiesta è presto detta.
Sul numero 61 di MC, che anch'io ho acquistato alla
stazione , dato che stavo andando all'università, ho avuto
la malaugurata idea di leggere la lettera del suddetto
Dopo i primi tentativi andati a vuoto mi accorgo che quel "momentaneamente" è diventato tutta la serata e parte della giornata di ieri e ancora oggi non ho trovato la soluzione. Ma ecco che mi viene un'idea meravigiosa: perché non vendicarmi a mia volta proponendo un giochino al tanto "caro" Antonio ? Tanto più che mi viene in mente un problemino proprio carino che apparve qualche anno fa su Genius, e che allora risolsi in un modo oscenamente semplice. Il problemino sarebbe dunque il seguente: TROVARE UN NUMERO TALE CHE SPOSTANDO LA PRIMA CIFRA DOPO L'ULTIMA SI OTTIENE UN NUMERO CHE è ESATTAMENTE LA METà DEL PRIMO Come vedi, Andrea, si tratta di un problemino niente affatto difficile che credo interesserà il nostro Antonio, anche perché ha una soluzione, almeno quella che io ho trovato, anch'essa tremendamente semplice. Concludo augurando a te, ma soprattutto a MC una lunga, anzi lunghissima, ma che dico, lunghissima lunga vita, ad una rivista che riesce sempre a mandarmi in orbita.
Scarfato Francesco - Gragnano (NA)
Il Computer
Prima di proseguire con le lettere occorre avvertire i lettori di non impazzire più di tanto circa la soluzione del quesito. Secondo me occorre insistere sul quel "oscenamente semplice" che fa davvero tanto pensare...
Da bravo informatico la prima
Il Professore
Caro De Prisco, sono un lettore (da parecchi anni, ormai) della vostra interessante rivista, ho 35 anni, insegno Matematica e Fisica presso l'Istituto Magistrale di Fonni (NU). Tante volte mi sono ripromesso di inviare un qualche contributo ma, sia per pigrizia, sia per il tempo suddiviso fra diversi campi di interesse, questa è la prima volta (ma non l'ultima, lo prometto) che vi scrivo. L'occasione è molto banale: il quesito posto da un giovane e spiritoso lettore (A. Cunei di Monfalcone) che chiede di scoprire la regola di costruzione della stringa numerica A$(J+1) a partire da una stringa A$(J) (J=1,2,3...). Ebbene: se la j-ma stringa è del tipo
cioè è costituita da un numero k1 di cifre uguali a k2, da k3 cifre uguali a k4 ecc., a partire da sinistra allora la (J+1)-ma stringa sarà
k1k2k3k4...k2n-1 k2n
ed è dunque immediato, per il criterio di formazione, che qualunque sia il numero di caratteri della j-ma stringa A$(J+l) conterrà un numero pari di cifre. Inoltre, essendo in A$(J) k2i<>k2i+2 per qualunque i>Q si ha anche che la massima cifra che potrà comparire in A$(J+l) è 3. Infatti in ogni sottostringa di A$(J) del tipo
k2i-1 k2i k2i+l k2i+2
saranno uguali, al massimo, i caratteri numerici
k2i-1 k2i k2i+1
(In realtà una cifra> 3 potrà comparire nel caso che la stringa iniziale A$(l) contenga quella cifra oppure se è costituita da un numero di cifre uguali consecutive maggiore di 3).
Sebastiano Serra - Tresnuraghes (OR)
Il giorno dopo...
E' passata una intera notte, ma il 128 non ha trovato nulla
(l'ultimo numero testato è: quattromilioniottocento-novantunomilacinquecentodiciotto).
Mi rifiuto di proseguire oltre fino a nuova idea. Andrebbe
comunque chiarito cosa si intende per prima cifra, per
ultima e per "spostare". Io l'ho inteso in questo senso:
Il Vichingo
Caro Andrea, anche se ti conosco da molti anni attraverso le pagine di MC (precisamente dai vecchi tempi in cui ero un VIC-hingo, seguiti poi da quelli di SESSANTAAQUATTRista fino ai momenti attuali di AMIGO), questa è la prima volta che ti scrivo cogliendo l'occasione del tuo invito sul numero di marzo 1987 nella rubrica «Appunti di Informatica». Innanzitutto per rassicurarti che almeno un terzo accanito lettore della tua rubrica c'è, ed inoltre per incitarti a continuare su questa strada dell'Informatica «SERIA». Veniamo adesso al quesito (abbastanza facile devo dire) della generazione dei «numeroni» proposto dal lettore Antonio Cunei sul numero di MC detto più sopra:
[1] I numeri sono generati in base ai numeri precedenti con il sistema di figura a. [2] Non potremmo mai avere una cifra maggiore di 3 presente nelle sequenze numeriche, questo perché per produrre un 4 dovremmo avere, nelle sequenza precedente almeno una serie AAAA (con A uguale a 1,2 o 3), ma questo è impossibile perché:
AAAA sarebbe generabile solamente da AA che però genera 2A (regola [1]).
Mi spiego con un esempio pratico che spero sia più chiaro: dalla coppia 11 otterremmo la quadrupla 1111 solo tramite una produzione del tipo UNa cifra 1 ed UNa cifra 1 (corrispondente a 1111), ma come abbiamo visto la regola ci dice che 11 -> 21 (cioè DUE cifre 1).
[3] Questo motivo inoltre fa anche in modo che il numero delle cifre di ogni sequenza generata sia sempre pari, infatti abbiamo visto (2 1) che al massimo in una sequenza avremmo una tripla AAA, quindi una sequenza potrà essere formata da singoli elementi (del tipo A), da coppie (AB) oppure da triple (AAA). Allora le possibili produzioni saranno solamente quelle di figura b. A questo punto è facile vedere che tutte le possibili produzioni generano sequenze formate da coppie, quindi sequenze con un numero di cifre PARI. Con questo ho concluso il mio piccolo contributo al mondo dell'Informatica (spero che sia tale, il contributo non l'Informatica) e ti saluto sperando di poterti "risentire" presto.
Giovanni Beani - Marina di Pietrasanta (LU)
Lampadina!
Mentre il computer testardamente continua a cercare
"nell'altro senso" (siamo già a quota 130mila), forse ho
scoperto il tranello... secondo me ha a che fare con "un
altro tipo di arimetica". Ma non posso aggiungere
nient'altro per non togliervi il
Lo studente
Caro Andrea, mi chiamo Corrado, concludo tra un paio di mesi la carriera di teen-ager e frequento il secondo anno della facoltà di Ingegneria, con sede in Arcavacata (CS). Anzitutto, i miei più vivi complimenti per la tua rubrica, sempre «ricca di spunti per discussioni demolitrici» (vedi lettore di Monfalcone). Visto che per il momento non sono animato da propositi demolitori, è il mio turno di proporre un certo numero di «divertenti» rompicapo: 1) Se la metà di 5 fosse 3, che cosa sarebbe un terzo di 10? 2) Perché un assegno datato 1 aprile non è valuta legale? 3) Consideriamo il seguente gioco: in una griglia 10 x l0 sistemare i numeri da 1 a 100 consecutivamente, osservando le seguenti regole: a partire da qualsiasi posizione si può effettuare uno:
I contorni della griglia sono fittizi, nel senso che è possibile considerare i vari lati collegati fra di loro. Quante soluzioni si può stimare che esistano? (Cioè, non bisogna trovare tutte le soluzioni, ma, in base a certe supposizioni, stimare il numero di soluzioni). In conclusione, (sperando che tu sia arrivato fin qui), oltre agli auguri di Buona Pasqua, un caloroso incoraggiamento a continuare questa rubrica, visto che almeno tre lettori ci sono.
Corrado Pecora - Vibo Valentia (CZ)
L'Informatico
Evviva! un altro lettore, e con questo fanno tre. Beh,
andiamo con ordine. Intanto tanti saluti e una valanga di
complimenti a tutta la redazione di MC, in particolare al
destinatario della lettera e cioè Andrea (permetti che ti
dia del tu?) ottimo curatore di "Appunti di Informatica"
La tecnica che usi non fa nessuna grinza nel primo caso mentre mi lascia un po' perplesso nel secondo. Infatti prendere gli elementi delle caselle della matrice secondo la diagonale di un quadrato vuol dire considerare come ipotesi iniziale che la matrice formata dai numeri naturali e dalle funzioni generate da S sia quadrata seppure infinita. Ma se si parte da questa considerazione e cioè cha la cardinalità di N e dell'insieme della funzioni generate da S è uguale, o meglio, equipotente, ls dimostrazione mi pare superflua, sapendo già che l'ordine di infinito dei sottoinsiemi di N e delle funzioni da N in N è maggiore dell'ordine di N. Altra considerazione: data per vera l'ipotesi che funzioni generate da S non siano tutte le funzioni da N in N non potrebbe essere sufficiente comporre tutte le funzioni generate da S, in tutti i modi possibili ? Otterremmo così ancora funzioni da N in N in un numero superiore allo stesso numero di tutte le funzioni da N in N, essendoci tra esse una valanga di doppioni, questo però non mi garantisce di ottenere tutte le possibili funzioni da N in N. Il mio cruccio è questo: come posso stabilire se il mio procedimento incrementa il numero delle funzioni generate da S fino ad ottenere tutte le funzioni da N in N ? Mi sembra superfluo a questo punto chiederti di darmi una mano.
Enrico Giordani - Tricesimo (UD)
Fermi tutti!!!
Non facciamo confusione. Innanzitutto nel numero 60 io non ho dimostrato che l'insieme delle funzioni calcolate dal formalismo S non comprende tutte le funzioni da N in N (questo è stato dimostrato nel #58) ma "semplicemente" che se S s' un formalismo capace di calcolare solo funzioni totali certamente non sarà in grado di calcolarle tutte (le funzioni totali, attenzione). E la dimostrazione non fa un grinza. Il problema è proprio questo. Nella tua lettera parli di funzioni in generale, mentre occorre distinguere tra funzioni, funzioni calcolabili e funzioni calcolabili totali. Una funzione da N in N è un qualsiasi procedimento che preso un input restituisce un output (sempre nel campo dei naturali). Una funzione calcolabile in più può essere effettivamente calcolata ovvero esiste un formalismo effettivo in grado di valutarla per ogni input. Valutare non vuol dire pervenire ad un risultato in un tempo finito. Uno. Secondo, potrebbe anche essere che la funzione non sia definita affatto su alcuni valori di ingresso. Infine le funzioni calcolabili totali si dicono tali in quanto valutandole, qualsiasi input gli passiamo ottenaimo un risultato in un tempo finito. Per quanto riguarda l'operazione di composizione, essendo questa una operazione effettiva e calcolabile (prendo il risultato ottenuto valutando la prima funzione e lo "passo" alla seconda funzione) partendo da funzioni totali otterrò ancora funzioni totali (e quindi se il mio formalismo le calcolava tutte non ne aggiungo di nuove) se il formalismo calcola sia funzioni totali che parziali discorso analogo: il formalismo calcola tutte le funzioni calcolabili ? L'operazione di composizione è calcolabile ? risposta: non aggiungeremo una sola funzione non già contemplata. Tutto qui. Impaginato originale...
Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui |