P. 1
Appendice 1 del libro "17-29: un'autobiografia di difficile lettura"

Appendice 1 del libro "17-29: un'autobiografia di difficile lettura"

|Views: 162|Likes:
Published by Marco Ripà
Gioco matematico descritto nel primo capitolo del libro "17-29: un'autobiografia di difficile lettura"
Gioco matematico descritto nel primo capitolo del libro "17-29: un'autobiografia di difficile lettura"

More info:

Published by: Marco Ripà on Aug 28, 2012
Copyright:Traditional Copyright: All rights reserved

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
See more
See less

01/28/2015

1

Progetto libro: 17-29: un’autobiografia di difficile lettura
Appendice 1 Il gioco di Filippo e Giacomo.
Forzando molto le condizioni da rispettare in via preliminare, si possono inventare molti giochi sulla falsariga di quello in questione. Sono tutti accomunati dal fatto di essere basati sulle caratteristiche intrinseche delle sottrazioni tra due numeri formati dallo stesso numero di cifre. E’ possibile considerare numeri palindromi o simmetrici ed arrivare a una dissociazione (parziale o totale) tra le singole cifre del sottraendo e le corrispondenti del minuendo. Un ruolo cruciale in tutto ciò è rivestito dal prestito eventualmente effettuato da una cifra del sottraendo a beneficio di quella ad essa adiacente.

In particolare, le relazioni che intercorrono tra le cifre “simmetriche” (rispetto all’ipotetico “centro” della differenza) sono le medesime se consideriamo minuendi di 5 e 6 cifre, 7 e 8 cifre, 9 e 10 cifre. Possiamo poi osservare che, per i numeri composti da 3-5-7-9 cifre, la cifra centrale del risultato della sottrazione è 9.

2

Ragionando sul caso in questione (7 cifre) come se dovessimo fare manualmente i conti con carta e penna, notiamo subito che il sottraendo ha sempre le ultime 3 cifre minori del minuendo e dunque risulta necessario effettuare il prestito da parte della cifra centrale. Poiché era originariamente uguale al suo corrispondente, la cifra centrale del sottraendo risulta sempre inferiore di una unità all’omologa del minuendo: la quarta cifra del risultato sarà pertanto un 9. Ciò è valido solo per numeri formati da un numero dispari di cifre. Per i numeri con cifre pari, la somma dei valori delle due cifre più interne (adiacenti tra loro) sarà invece sempre uguale a 8 (eccezion fatta per i numeri composti da due sole cifre). Nello specifico si presentano i seguenti casi:

Come esempio riprendiamo il caso della sfida tra Filippo e Giacomo: 9754320– 0234579= ----------------9519741

3

(Conoscendo le ultime 3 cifre della differenza, si può ricavare in un battibaleno l’intero risultato della sottrazione). Assunto: la somma delle cifre simmetriche del risultato della sottrazione. Effettuata con due numeri rispondenti alle caratteristiche stabilite, è sempre costante ed ha i valori riportati precedentemente – per il sistema di numerazione decimale -. Per verificare che sono valide le relazioni mostrate in precedenza, procediamo per induzione partendo dall’assunto, che sappiamo vero per n-1 cifre e dimostrandolo per n+1. Se la cifra è una sola si ha: a –
a = -----(a-a) [a ]

a-a=x1

x1=0

(che è ovvio)

Passando al caso di due cifre si ha:
a b –

b a = ----------------------------((a-a)-b) ((b+10)-a)

a-1-b=x1 b+10-a=x2

x1+x1=9=cost a=x1+b+1

Infine mostriamo il caso in cui il numero in questione sia formato da tre cifre: a b c – c b a = ----------------------------------------------((a-1)-c) ((b-1)+10-b) ((c+10)-a)

a-1-c=x1

a=x1+c+1

x1+x3=9=cost

4

b+9-b=x2 c+10-a=x3

x2=9 x1=-x3+9

x2=9=cost a=x1+c+1

E così via, fino al caso di un numero composto da 10 cifre (che sarà trattato tra poco); verifichiamo la validità della regola nel caso di un numero di sette cifre:

a b c d e f g – g f e d c b a = -----------------------------------------------------------------------------------------------------(a-g) (b-f) ((c-1)-e) ((d-1)+10-d) ((e-1)+10-c) ((f-1)+10-b) ((g+10)-a)
Semplificando:

a b c d e f g – g f e d c b a = -----------------------------------------------------------------------------------------------------(a-g) (b-f) (c-e-1) (9) (e-c+9) (f-b+9) (g-a+10)

Posto che equazioni:

, risulta il seguente sistema di

.

{

{

Nel caso di 10 cifre si ottiene un’unica combinazione possibile; infatti: 9876543210– 0123456789= -------------------------9753086421 Dunque, poiché questo è l’unico caso (in un sistema di numerazione base 10) che rispetta la condizione , l’unico risultato ammissibile è 9753086421. Tale valore si ricava immediatamente dal sistema

5

a+l=9 a+i=9 c+h=9 d+g=9 e+f=9 x1+x10=10 x2+x9=9 x3+x8=9 x4+x7=9 x5+x6=8

a=9 b=8 c=7 d=6 e=5 f=4 g=3 h=2 i=1 l=0

La legge che identifica in maniera univoca i 10 valori delle somme delle cifre del risultato, nel caso in cui il numero al quale deve essere sottratto il suo inverso sia espresso nel sistema decimale, è la seguente successione:

( { [

) ( ) ]

Cioè, i valori di an sono: a1=0; a2=9; a3=a4=18; a4=a6=27; a7=a8=36; a9=a10=45. Il numero delle possibili combinazioni numeriche (che danno luogo ad uno dei risultati che soddisfano le equazioni precedenti) è pari al complesso dei numeri ai quali deve venire sottratto il proprio inverso; la formula è, per qualsiasi tipo di sistema numerico,
( )

(dove N rappresenta il “numero di caratteri numerici” nel sistema considerato,

mentre K è il numero delle cifre del minuendo; K quindi corrisponde al numero di cifre disponibili). Nel sistema decimale si ha:

1 cifra (K=1)C=10 2 cifre (K=2)C=45 3 cifre (K=3)C=120 4cifre (K=4)C=210

6 cifre (K=6)C=210 7 cifre (K=7)C=120 8 cifre (K=8)C=45 9 cifre (K=9)C=10

6

5 cifre (K=5)C=252
Graficamente:

10 cifre (K=10)C=1

Come si evince dalla figura, la casistica più grande si ha in corrispondenza di un numero formato da 5 cifre. La partita tra Filippo Martinetti e il suo amico è un chiaro esempio di questa legge. La situazione è la seguente: Il numero di cifre di sottraendo, minuendo e differenza è 7, e le tre ultime cifre di quest’ultima sono 741. Utilizzando le relazioni tra le cifre simmetriche di un numero di 7 cifre, Phil ne deduce facilmente che la differenza è 9519741. A questo punto Giacomo (senza curarsi di aver comunicato due dati ridondanti) fornisce 4 cifre non simmetriche tra loro del minuendo (nello specifico le ultime 4). Filippo non deve fare altro che risolvere mentalmente un secondo sistema di equazioni per ottenere l’intera sequenza numerica:

( ( {( ) )

) {

.

Si è così ricavato che: 9754320– 0234579=

7

------------------9519741

Le cifre del risultato non sono completamente libere, ma, a seconda del numero in questione, possono variare entro degli intervalli prestabiliti: ciò dipende anche dal numero delle cifre che compongono il minuendo e dunque il risultato. Di seguito si riporta l’intera sequenza (il risultato è espresso nella forma “a c e g i l h f d b”). 1 cifra: a=0 2 cifre: 0≤a≤8 ; 1≤b≤8 3 cifre: 1≤a≤8 ; c=9 ; 1≤b≤8 4 cifre: 3≤a≤9 ; 0 ≤ c≤6 ; 2≤d≤8 ; 1≤b≤7 5 cifre: 4≤a≤9 ; 1≤c≤6 ; e=9 ; 2≤d≤7 ; 1≤b≤6 6 cifre: 5≤a≤9 ; 3≤c≤7 ; 0≤e≤4 ; 4≤f≤8 ; 2≤d≤6 ; 1≤b≤5 7 cifre: 6≤a≤9 ; 4≤c≤7 ; 1≤e≤4 ; g=9 ; 4≤f≤7 ; 2≤d≤5 1≤b≤4 8 cifre: 7≤a≤9 ; 5≤c≤7 ; 3≤e≤5 ; 0≤g≤2 ; 6≤h≤8 ; 4≤f≤6 ; 3≤d≤4 ; 1≤b≤3 9 cifre: 8≤a≤9 ; 5≤c≤6 ; 4≤e≤5 ; 1≤g≤2 ; i=9 ; 6≤h≤7 ; 4≤f≤5 ; 2≤d≤3 ; 1≤b≤2 10 cifre: a=9 ; c=7 ; e=5 ; g=3 ; i=0 ; e=8 ; h=6 ; f=4 ; d=2 ; b=1 Da questa serie di dati si evince che, eccettuato il “caso limite” si una cifra, l’intervallo entro cui possono variare le cifre è dato dal numero delle cifre previste dal sistema numerico utilizzato (ad esempio nel sistema decimale N=10) diminuite del numero di cifre di cui è composto il risultato della sottrazione; a tale risultato si deve aggiungere un’unità: ( ) Le leggi che governano le sottrazioni in questione sono in definitiva:
2 cifre: a b – b a = --------------x1 x2

[a > b]

x1=a-b-1 x2=b-a+10

b=a-x1-1 x1+x2=9

3 cifre: a b c – c b a = --------------x1 x2 x3 b=b c=a+x3-10 x2=9 x1+x3=9

[a > b > c]

c+10-a=x3 b-1+10-b=x2 a-1-c=x1

8

4 cifre: a d b c d – c b a = d+10-a=x4 c-1+10-b=x3 b-1-c=x2 a-d=x1 d=a+x4-10 c=b+x3-9 x1+x4=10 x2+x3=9

[a > b > c > d]

------------------x1 x2 x3 x4 5 cifre: a b c d e – e d c b a = ----------------------x1 x2 x3 x4 x5

[a > b > c > d > e]

e+10-a=x5 d-1+10-b=x4 c-1+10-c=x3 b-1-d=x2 a-e=x1

c=c e=a+x5-10 d=b+x4-9 x3=9 x1+x5=10 x2+x4=8

6 cifre: a b c d e f – f e d c b a = [a > b > c > d > e > f] -------------------------x1 x2 x3 x4 x5 x6 f+10-a=x6 e-1+10-b=x5 d-1+10-c=x4 c-1-d=x3 b-e=x2 a-f=x1 f=a+x6-10 e=b+x5-9 d=c-x4-9 x1+x6=10 x2+x5=9 x3+x4=8

7 cifre: [a > b > c > d > e > f > g] a b c d e f g – g f e d c b a = ------------------------------x1 x2 x3 x4 x5 x6 x7 g+10-a=x7 f-1+10-b=x6 e-1+10-c=x5 d-1+10-d=x4 c-1-e=x3 b-f=x2 a-g=x1 d=d e=c+x5-9 f=b+x6-9 g=a+x7-10 x1+x7=10 x2+x6=9 x3+x5=9 x4=9

8 cifre: [a > b > c > d > e > f > g > h] a b c d e f g h – h g f e d c b a = ----------------------------------x1 x2 x3 x4 x5 x6 x7 x8 h+10-a=x8 g-1+10-b=x7 f-1+10-c=x6 e-1+10-d=x5 d-1-e=x4 h=a+x8-10 g=b+x7-9 f=c+x6-9 e=d+x5-9 x1+x8=10

9

c-f=x3 b-g=x2 a-h=x1 9 cifre: : [a > b > c > d > e > f > g > h > i] a b c d e f g h i – i h g f e d c b a = -------------------------------------x1 x2 x3 x4 x5 x6 x7 x8 x9 i+10-a=x9 h-1+10-b=x8 g-1+10-c=x7 f-1+10-d=x6 e-1+10-e=x5 d-1-f=x4 c-g=x3 b-h=x2 a-i=x1

x2+x7=9 x3+x6=9 x4+x5=8

e=e i=a+x9-10 h=b+x8-9 g=c+x7-9 f=d+x6-9 x1+x9=10 x2+x8=9 x3+x7=9 x4+x6=8 x5=9

CASI PARTICOLARI:
1 cifra: a – b = -----x1

x1=a-a

x1=0

10 cifre: : [a > b > c > d > e > f > g > h > i > l] a b c d e f g h i l – l i h g f e d c b a = -------------------------------------------x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 9876543210– 0123456789= ------------------------9753086421 a=9 b=8 c=7 d=6 e=5 f=4 g=3 h=2 i=1 l=0 x1+x10=10 x2+x9=9 x3+x8=9 x4+x7=9 x5+x6=8

=

10

Vi è un’ulteriore dettaglio. Per ogni siffatta operazione, purché abbia come minuendo un numero di almeno 4 cifre ( ), si verifica la seguente proprietà. Identificando con A il primo elemento (a partire da sinistra) del risultato, con B l’ultimo elemento che si trova nella metà sinistra del sottraendo (escludendo la cifra centrale nel caso di numeri formati da un totale di cifre dispari), con C l’elemento più a sinistra della metà destra del risultato e con D la cifra all’estrema destra, si ha che la differenza tra A e B è sempre inferiore di due unità rispetto a quella tra C e D.

(A-B)-(C-D)=2=cost
Si tratta di una semplice conseguenza delle condizioni preliminarmente imposte, ma che può portare a un notevole risparmio in termini di tempo, nell’ambito di un gioco mnemonico del tipo di quello praticato dai personaggi del romanzo. Qui di seguito sono riportati i casi di 5 e 6 cifre, ma quanto detto vale altresì per i restanti 5 casi.

Ciò, in alcuni casi, può facilitare il conteggio mentale. Si sfruttano le concatenazioni delle differenze da ambo le parti del risultato1; una volta che rimane come ultima incognita A, B, C oppure D, sarà sufficiente osservare qual è il corrispondente valore nell’altra metà del numero e procedere “a ritroso”. In conclusione riportiamo due esempi per chiarire il tutto. Es1: 87543210– 01234578= --------------------86308632 Nell’esempio A=8, B=0, C=8, e D=2. Dunque avremo A-B=8 e C-D=6. L’identità è pertanto verificata. Se non conoscessimo ad esempio A e volessimo estrapolarne velocemente il valore, basterebbe osservare che C-D=6 e dovendo, nel nostro caso, per forza risultare A-0=6+2, risulta immediato dedurre che A=8, anche senza ricordarsi nello specifico che x1+x8=10. Es2: 9643 1– 1346 9=
1

Appare ovvio infatti che, nelle nostre condizioni iniziali, a-c=a-b+b-c ; a-d=a-b+b-c+c-d e così via…

11

------------8 2 9 x5 2 In questo caso x5, la nostra incognita, corrisponde a B. Sapendo che A-B=6 e che x5-2 deve essere pari a 4, si deduce immediatamente x5=6. Il discorso potrebbe essere approfondito ulteriormente, ma il modo più pratico e veloce (tranne che per appassionati come Phil) resta quello di avvalersi di un’applicazione in grado di eseguire automaticamente tutte queste operazioni.

Un semplice programma in linguaggio C, che copre tutta la casistica della versione classica del gioco, è il seguente:

/*************************************************************** * * * PHIL VS YOU * * * ****************************************************************/ /*MACROES*/ #include <stdlib.h> #include <stdio.h> #include <math.h> #include <string.h> #define N 11 #define K 10 /*MAIN*/ int main (void) { /* DICHIARAZIONE VARIABILI */ int n_cifre, i, resto, k, j, l; int x[N], y[K]; char line [71]; char string [81]; char stringa [61]; /* INIZIALIZZAZIONE VARIABILI */ n_cifre = 0; x[0] = 0; y[0] = 0;

12

/* INPUT-OUTPUT */ printf ("Digita il numero di cifre di cui e' composto il risultato, purche' sia tra 2 e 10:\n"); fgets (line, sizeof (line), stdin); sscanf (line, "%d", &n_cifre); if (n_cifre<2 || n_cifre>10) { printf ("%c", '\a'); printf ("Leggi bene le istruzioni!!!\n"); return 1; } if (n_cifre != 10) { printf ("Digita la prima meta' delle cifre del risultato meno una se il numero e' formato da un numero dispari di cifre, la prima meta' delle cifre altrimenti!\n"); resto=n_cifre%2; if (resto == 0) { printf ("Dunque hai scelto un numero formato da una quantita' di cifre pari, ma va' bene lo stesso!\n"); for(i=0; i<n_cifre/2; i++) { printf ("scrivi %da cifra:\n", i+1); fgets(string, sizeof(string), stdin); sscanf(string, "%d", &x[i]); } } else { for(i=0; i<(n_cifre-1)/2; i++) { printf ("Scrivi %da cifra:\n", i+1); fgets (string, sizeof(string), stdin); sscanf (string, "%d", &x[i]); } } /* ALGORITMO PER LA DETERMINAZIONE DEL RISULTATO */ if(n_cifre == 2) { x[1]=9-x[0]; } if(n_cifre == 3) { x[2]=9-x[0];

13

x[1]=9; } if(n_cifre == 4) { x[3]=10-x[0]; x[2]=8-x[1]; } if(n_cifre == 5) { x[4]=10-x[0]; x[3]=8-x[1]; x[2]=9; } if(n_cifre == 6) { x[5]=10-x[0]; x[4]=9-x[1]; x[3]=8-x[2]; } if(n_cifre == 7) { x[6]=10-x[0]; x[5]=9-x[1]; x[4]=8-x[2]; x[3]=9; } if(n_cifre == 8) { x[7]=10-x[0]; x[6]=9-x[1]; x[5]=9-x[2]; x[4]=8-x[3]; } if(n_cifre == 9) { x[8]=10-x[0]; x[7]=9-x[1]; x[6]=9-x[2]; x[5]=8-x[3]; x[4]=9; } } else { if(n_cifre == 10) { x[0]=9; x[1]=7;

14

x[2]=5; x[3]=3; x[4]=0; x[5]=8; x[6]=6; x[7]=4; x[8]=2; x[9]=1; } } /* OUTPUT PARZIALE */ printf("\n\nIl risultato completo della sottrazione e':\n"); for(k=0; k<n_cifre; ++k) { printf(" %d", x[k]); } printf("\n\n"); /* INPUT-OUTPUT FINALE */ if(n_cifre == 2) { for(j=0; j<1; ++j) { printf("Digita %da cifra del sottraendo\n", j+1); fgets(stringa, sizeof(stringa), stdin); sscanf(stringa, "%d", &y[j]); } y[1]=y[0]-x[0]-1; } if(n_cifre == 3) { for(j=0; j<=1; ++j) { printf("Digita %da cifra del sottraendo\n", j+1); fgets(stringa, sizeof(stringa), stdin); sscanf(stringa, "%d", &y[j]); } y[2]=y[0]+x[2]-10; } if(n_cifre == 4) { for(j=0; j<=1; ++j) {

15

printf("Digita %da cifra del sottraendo\n", j+1); fgets(stringa, sizeof(stringa), stdin); sscanf(stringa, "%d", &y[j]); } y[3]=y[0]+x[3]-10; y[2]=y[1]+x[2]-9; } if(n_cifre == 5) { for(j=0; j<=2; ++j) { printf("Digita %da cifra del sottraendo\n", j+1); fgets(stringa, sizeof(stringa), stdin); sscanf(stringa, "%d", &y[j]); } y[4]=y[0]+x[4]-10; y[3]=y[1]+x[3]-9; } if(n_cifre == 6) { for(j=0; j<=2; ++j) { printf("Digita %da cifra del sottraendo\n", j+1); fgets(stringa, sizeof(stringa), stdin); sscanf(stringa, "%d", &y[j]); } y[5]=y[0]+x[5]-10; y[4]=y[1]+x[4]-9; y[3]=y[2]+x[3]-9; } if(n_cifre == 7) { for(j=0; j<=3; ++j) { printf("Digita %da cifra del sottraendo\n", j+1); fgets(stringa, sizeof(stringa), stdin); sscanf(stringa, "%d", &y[j]); } y[6]=y[0]-x[0]; y[5]=y[1]-x[1]; y[4]=y[2]-x[2]-1;

16

} if(n_cifre == 8) { for(j=0; j<=3; ++j) { printf("Digita %da cifra del sottraendo\n", j+1); fgets(stringa, sizeof(stringa), stdin); sscanf(stringa, "%d", &y[j]); } y[7]=y[0]+x[7]-10; y[6]=y[1]+x[6]-9; y[5]=y[2]+x[5]-9; y[4]=y[3]+x[4]-9; } if(n_cifre == 9) { for(j=0; j<=4; ++j) { printf("Digita %da cifra del sottraendo\n", j+1); fgets(stringa, sizeof(stringa), stdin); sscanf(stringa, "%d", &y[j]); } y[8]=y[0]+x[8]-10; y[7]=y[1]+x[7]-9; y[6]=y[2]+x[6]-9; y[5]=y[3]+x[5]-9; } /* SCRITTURA RISULTATI */ if (n_cifre != 10) { printf("Tu, sul tuo foglio di carta, hai scritto:\n\n"); for(l=0; l<n_cifre; ++l) { printf(" %d", y[l]); } printf(" -\n"); for(l=(n_cifre-1); l>=0; --l) { printf(" %d", y[l]); } printf(" =\n"); for(l=0; l<=n_cifre; ++l) {

17

printf("--"); } printf("\n"); for(k=0; k<n_cifre; ++k) { printf(" %d", x[k]); } printf("\n\n"); } /* CASO PARTICOLARE DI n_cifre = 10 */ if(n_cifre == 10) { for(j=0; j<=2; ++j) { printf("\n"); } printf("Sul tuo foglio di carta hai scritto:\n\n"); printf(" 9 8 7 6 5 4 3 2 1 0 -\n 0 1 2 3 4 5 6 7 8 9 = \n----------------------\n 9 7 5 3 0 8 6 4 2 1\n\n\n\n\n\n"); } return 0; } #undef N #undef K

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->