sabato 16 marzo 2019

Pigrecate

Anche quest’anno è appena passato il 14 marzo, che internazionalmente è il giorno dedicato a PiGreco (3.14). Il bello di questa ricorrenza è che si sentono ripetere molte scemenze pseudo-matematiche. E molti ad applaudirle a bocca aperta, dimostrando di non voler applicare la dose minima di ragionamento e senso critico.

La mia preferita? il fatto che PiGreco, poiché è un numero trascendente, e come tale ha un’espansione decimale infinita e non periodica, comprenderebbe nella sua espansione qualsiasi sequenza di cifre (quindi anche il tuo compleanno, il tuo saldo in banca, il numero di telefono di Belen, il risultato della prossima estrazione del SuperEnalotto, e così via). Molto poetico ed ispiratore, ma purtroppo falso (o meglio, non è noto se sia vero).

Ricordiamo i fatti (mi scusino i matematici veri per le semplificazioni):

  • è vero che l’espansione di PiGreco è infinita
  • è vero che tale espansione non è periodica (ossia non esiste una sequenza di cifre che, da un certo punto in avanti, si ripete sempre uguale)
  • queste proprietà sono valide in qualsiasi base si esprima il numero.

Ma l’infinito è grande. Il fatto che ci siano infinite cifre, sempre diverse, non implica che una determinata sequenza debba necessariamente essere presente. Posso andare avanti con infinite cifre senza mai ripetermi ed evitando sempre (ad esempio) la sequenza 111222333444.

Dimostrazione:

  • Esprimete PiGreco in base 9. PiGreco=3,124188124074472… (fonte OEIS)
  • Ovviamente, avrà una espansione infinita e non periodica.
  • Ma, per costruzione, la sua espansione (pur essendo infinita e non periodica) non conterrà mai la cifra ‘9’ (che in base 9 non esiste)
  • Ora, rileggiamo il numero in base 10 (non vale più PiGreco, ma non importa)
  • Avremo una sequenza numerica infinita, non periodica, che non conterrà mai ‘9’ né alcuna sequenza che contenga ‘9’.

Quindi non è detto che un numero trascendente possa contenere ogni possibile sequenza. Per poterlo dire sarebbe necessario ipotizzare in più che PiGreco sia un Numero Normale (il che non è al momento ancora noto), ed anche il tal caso sarebbe vero solamente in senso statistico (la probabilità di trovare una sequenza tende al 100%).

Se vogliamo costruire un numero che contenga ogni possibile sequenza, c’è un metodo molto più semplice (anche se meno poetico-evocativo):

0, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 … 98 99 100 101 102 … 999 1000 1001 … (Ha anche un nome: è la costante di Champernowne)

È un po’ lungo, e decisamente noioso, ma tanto l’infinito è grande e c’è spazio per tutti… prima o poi troverai il numero che ti serve.


P.S. se ho commesso degli errori matematici, sarei ben lieto di essere corretto.

venerdì 15 febbraio 2019

Condividere un file

Succede spesso che gli studenti inviino una e-mail per chiedere chiarimenti sull’esercizio che stanno svolgendo.

Ecco i metodi utilizzati per condividere l’esercizio che stanno svolgendo, che vanno dal meno frequente (ma più adeguato) al più frequente (ma orribile da tutti i punti di vista):

  • Codice sorgente su un repository GitHub, inviando il link al repository.
    Nota: non succede mai, ma sarebbe il mio sogno.
  • Codice sorgente completo (es. progetto Eclipse o progetto PyCharm) inviato come zip.
    Nota: quando lo zip supera i filtri dell’anti-spam, è un po’ scomodo da gestire, ma alla fine sei sicuro che ci sia tutto.
  • Codice sorgente parziale (es. solo un file, o parte di un file), inviato come allegato di e-mail.
    Nota: a patto che l’errore sia proprio in quel file (e comunque non hai modo di provarlo, quindi devi andare “ad istinto”… e sappiamo tutti quanto vale l’istinto nel debug).
  • Codice sorgente parziale, incollato nel corpo della e-mail.
    Nota: spazi, indentazioni, caratteri speciali, se se sono andati a farsi friggere.
  • Videata del codice sorgente (screenshot del PC), inviata come file immagine via e-mail.
    Nota: molto stupido (vedi solo una parte di un file, e non puoi studiarlo né modificarlo) e molto raro (quasi nessuno sa come salvare su file uno screenshot preso da PC… suggerimento: in Windows c’è uno “Strumento di Cattura”, oppure usate il freeware Greenshot).
  • Videata del codice sorgente, sbilenca e sfocata, ottenuta fotografando lo schermo con un cellulare.
    Nota: è di gran lunga la modalità più utilizzata. Di solito è impossibile capire cosa stavano facendo e cosa poter rispondere. Infatti, solitamente non rispondo, o chiedo che inviino il file originale.
    Ma soprattutto il dubbio amletico è: stai lavorando su un file, sei su un PC (o Mac che sia), hai un programma di posta… come ti viene in mente di fare una foto allo schermo?

Ovviamente temo il momento in cui mi invieranno un video in cui mi spiegano a voce il problema, inquadrando lo schermo con fare tremolante ed incerto. Lo temo, ma so già che prima o poi arriverà.