All Episodes

November 9, 2024 30 mins

Generare numeri casuali in Informatica è un’attività ben più complessa di quanto si possa immaginare. Esistono varie questioni e soluzioni che rendono i vari processi estremamente interessanti. E quindi noi ne parliamo su Pensieri in codice.

Pensieri in codice

Entra a far parte della community

Canale Telegram
Gruppo Telegram

Sostieni il progetto

Sostieni tramite Satispay
Sostieni tramite Revolut
Sostieni tramite PayPal (applica commissioni)
Sostieni utilizzando i link affiliati di Pensieri in codice: Amazon, Todoist, Readwise Reader, Satispay
Sostenitori di oggi: Edoardo Secco, Carlo Tomas

Partner

GrUSP (Codice sconto per tutti gli eventi: community_PIC)
Schrödinger Hat

Fonti dell'episodio

https://expertbeacon.com/what-are-the-most-common-numbers-picked-from-1-to-10/
https://www.reddit.com/r/dataisbeautiful/comments/acow6y/asking_over_8500_students_to_pick_a_random_number/
https://www.youtube.com/watch?v=SxP30euw3-0
https://www.youtube.com/watch?v=aEJB8IAMMpA&t
https://www.random.org/randomness/
https://it.wikipedia.org/wiki/Generatore_lineare_congruenziale
https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0041531
https://machinelearningmastery.com/introduction-to-random-number-generators-for-machine-learning/

Crediti

Sound design - Alex Raccuglia
Voce intro - Maria Chiara Virgili
Voce intro - Spad
Musiche - Kubbi - Up In My Jam, Light-foot - Moldy Lotion, Creativity, Old time memories
Suoni - Zapsplat.com
Cover e trascrizione - Francesco Zubani

Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:00):
Prima di iniziare con l'episodio di oggi, ti devo raccontare una breve storia triste.
Lo script che stai per ascoltare è pronto ormai da più di due settimane e secondo le
mie previsioni avrei dovuto registrarlo sabato 19.
Tuttavia, al piano sopra casa nostra, che è anche l'ultimo, stanno facendo tutta una

(00:20):
serie di lavori di ripristino.
E fin qui tutto ok, starai pensando che il problema sia al massimo il rumore, ma in realtà
ovviamente di sabato e domenica non si lavora e da questo anche la mia scelta di registrare
è nel weekend.
Il problema però è stato che i geni dell'edilizia che stanno lavorando, si sentono le virgolette,

(00:40):
al cantiere, hanno ben pensato di rimuovere il tetto di una parte dell'appartamento prima
di impermeabilizzare la parte sottostante.
Ora, se anche tu stai pensando che questa sia una mossa degna del criceto più stupido
della cucciolata...
Non posso che darti ragione.
Anzi, posso solo aggiungere che si tratta ancor più di una cazzata se nei giorni successivi

(01:05):
è prevista un'allerta meteo gialla per temporali.
Risultato di tutta questa genialità all'opera?
Beh, semplicemente hanno allagato metà del nostro appartamento, camera da letto, studio
e soprattutto la cabina armadio, cioè il posto dove io normalmente registro pensieri
in codice perché c'è l'acustica migliore di tutta la casa.
Ora, senza volerla portare troppo per l'occhio, la cabina armadio è un posto dove io normalmente

(01:27):
registro per le lunghe la questione che la risoluzione del problema è ben lungi dall'essere
in vista, quindi mi sono detto che se aspetto che tutto sia sistemato, prima di pubblicare
altri episodi passeranno mesi.
Quindi ho deciso di provare a registrare in un'altra stanza.
Purtroppo l'acustica è peggiore e arrivano i rumori della strada, ma io davvero non ho

(01:51):
altro modo.
Allora, detto questo, non ci resta che ringraziare questa gente e l'autore.
Grazie per la loro inettitudine e goderci l'episodio di Pensieri in Codice.
Raramente ci pensiamo, ma i numeri casuali sono una componente fondamentale della nostra

(02:11):
vita quotidiana, sia digitale che non.
Sono utilizzati ad esempio in campo scientifico, in informatica, nei giochi d'azzardo e persino
nella letteratura o nella musica.
Sicurezza, machine learning, simulazione, videogame, le applicazioni sono in tutti i
modi e sono infinite.
Per questo motivo la generazione di numeri casuali è impiegata in una enorme varietà

(02:34):
di software ed è disponibile pressoché in qualsiasi linguaggio di programmazione e per
qualsiasi piattaforma.
Ma in pratica, come vengono generati dei numeri casuali?
Beh, il discorso in realtà è più articolato di quanto possa sembrare e di conseguenza
è molto interessante.
Quindi oggi ne parliamo insieme e proviamo come al solito.

(02:57):
Come al solito a mettere in fila un po' di ragionamenti e curiosità.
Ovviamente però dopo la sigla.
Benvenuti su Pensieri in Codice, il podcast dove si ragiona da informatici.
Con Valerio Galano.
Facciamo così, proviamo a fare un gioco.

(03:19):
Pensa ad un numero a caso tra 1 e 10, quello che preferisci, con 1 e 10 compresi.
Non c'è bisogno che fermi la riproduzione, ti lascio io qualche secondo per decidere,
ma non troppi, mi raccomando.
Fai veloce, giusto qualche attimo, un numero a tua scelta tra 1 e 10.

(03:41):
Ancora un istante, ci siamo quasi, stop.
Deciso?
Bene.
Ora, secondo me, ci sono buone probabilità che tu abbia scelto il numero 7.
Ho indovinato?
Se ho indovinato, sicuramente ti starai chiedendo.
Come io abbia fatto?
Sappi che ne sono un mago, ne spio i tuoi dispositivi.

Se invece ho sbagliato, ti starai chiedendo (04:03):
ma perché ha detto proprio 7?

Beh, in entrambi i casi, la risposta è semplice (04:09):
la realtà è che la maggior parte delle persone
messe di fronte alla scelta di un numero casuale tra 1 e 10, scelgono il 7.
E' una cosa assolutamente naturale.
All'interno tale scelta c'è un ragionamento inconscio, del tutto arbitrario, ma che risulta

(04:33):
tutto sommato piuttosto verosimile e che pertanto influenza realmente la decisione.

Possono cambiare i dettagli, ma il ragionamento è più o meno il seguente (04:39):
i numeri da 1
a 10 sono la sequenza 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
Giusto?
Ora, 1 e 10 sono gli estremi.
Non hanno proprio l'aria di essere una scelta casuale, no, quindi li scartiamo.

(05:01):
I numeri pari, poi, sono numeri più amichevoli dei dispari nella vita reale, più facili
da dividere per due, più rotondi, morbidi, in generale sembrano la scelta più facile,
non quella casuale, quindi eliminiamo anche loro.
Ci restano allora 3, 5, 7 e 9.

(05:23):
Ma 5 è esattamente nel mezzo.
È pari a 10 diviso 2, nemmeno questo ha l'aspetto di un numero scelto a caso, giusto?
E lo stesso discorso vale per 9, che è uguale a 3 per 3, poi non è primo, insomma non ci
piace.
E dunque, la scelta resta tra il 3 e il 7, ma il 3 è così evocativo, quante volte

usiamo 3 nella vita rispetto a 7 (05:48):
la Trinità, i tre moschettieri, le trilogie dei film,
le tre grazie.

Potremmo andare avanti all'infinito (05:56):
è una scelta troppo facile, non ci stiamo proprio
impegnando se scegliamo 3, e quindi, quindi alla fine resta solo 7.
È la scelta che nella nostra testa risulta meno ovvia e di conseguenza quella che sembra
la più casuale, ed ecco perché, pur non eseguendo consciamente questo ragionamento

o uno simile, la maggior parte delle persone alla fine sceglie proprio il numero 7 (06:19):
se pensi
che io stia delirando, ti lascio un paio di link in descrizione, puoi approfondire per
conto tuo e magari condividere anche le tue scoperte sul gruppo Telegram di Pensieri in
Codice che trovi sul sito pensierincodice.it se ti va.

(06:40):
Ad ogni modo, la cosa interessante di tutto questo discorso è che potrebbe sembrare che
in qualche modo il numero 7, tra quelli compresi tra 1 e 10, abbia una sorta di caratteristica
casualità intrinseca.
Se lo scelgono in tanti avrà un qualche livello di casualità maggiore degli altri, no?

(07:02):
Beh in realtà no, assolutamente no, una cosa del genere non vale per nessun numero.
La prima cosa da capire quando si parla di numeri casuali è che la casualità risiede
nella sequenza delle scelte e non nel singolo numero scelto.
Quando poco fa ti ho chiesto di scegliere un numero, tu potresti aver scelto:

(07:25):
7 o 3 o 5 o qualsiasi altro, ma in ogni caso, come posso io sapere che la tua è stata effettivamente
una scelta casuale?
Non posso.
Per farlo avrei bisogno di altre informazioni, dovrei chiederti di scegliere di nuovo e di
nuovo e poi di nuovo ancora, per un bel po' di volte e solo allora potrei iniziare a capire

(07:50):
se le tue scelte sono veramente casuali.
Se tu mi rispondessi sempre 3, 3, 3 e così via ad esempio, saprei che in realtà non
c'è proprio nulla di casuale nelle tue scelte.
La caratteristica di un numero di essere casuale infatti risiede non nel numero stesso ma nella

(08:13):
sequenza di numeri casuali di cui esso fa parte.

Diciamolo anche in un altro modo (08:17):
un numero singolo non è mai casuale di per sé, quello
che individua
la casualità è la sequenza o se vogliamo più genericamente il contesto in cui è inserito.
In pratica 3 o 7 o qualsiasi altro numero non sono casuali di natura ma lo diventano

(08:40):
ad esempio nella sequenza 5, 3, 6, 9, 7, 2, 1, 10, 4, 8.
Questo almeno se intendiamo la questione nei limiti entro i quali la mente umana o perlomeno
la mia è in grado di generare la casualità.
Questa sequenza infatti l'ho creata a tavolino scegliendo io stesso ogni volta un numero tra

(09:05):
1 e 10 e se la valuti attentamente ti accorgerai che non è nemmeno particolarmente casuale.
Io me ne sono accorto solo dopo.
Ad esempio la prima cosa che si può notare è che nessun numero si ripete e già questo
di per sé non è un comportamento realistico.
Se fosse una sequenza veramente casuale le probabilità che su 10 scelte tra 10 numeri

(09:34):
nessuno di essi si ripeta sarebbero veramente basse in realtà.
In natura, come vedremo fra poco, la casualità è qualcosa di abbastanza strano.
Ma allora, noi che siamo informatici, o appassionati di informatica, o smanettoni

(09:54):
di ogni genere, potremmo pensare che, visti i limiti umani, basti sviluppare un software
per essere in grado di generare una sequenza casuale.
Ma in realtà neanche questo è vero, o almeno non è così semplice.
Di software del genere ce ne sono in giro parecchi, ad esempio ce n'è almeno uno pressoché

(10:16):
in ogni linguaggio di programmazione, ma in effetti nessuno di questi da solo è in grado
di generare sequenze casuali.
Il massimo che può fare un software infatti è generare sequenze che sembrino casuali.
A differenza di quanto si potrebbe intuitivamente pensare, utilizzando solo degli strumenti software

(10:46):
è impossibile scegliere un numero veramente casuale, o tantomeno generare una sequenza
di numeri veramente casuali.
Il software infatti per sua natura opera in modo deterministico, cioè ogni operazione
eseguita da un programma è una conseguenza diretta di istruzioni e regole definite dal

(11:06):
suo programmatore.

Basta pensare alla definizione di algoritmo per capirlo (11:08):
una sequenza finita di istruzioni
o operazioni ben definite e ordinate dove ogni passo deve essere chiaro e non ambiguo.
Non è previsto in alcun modo che un algoritmo
si comporti secondo dinamiche casuali. Allo stesso input deve corrispondere sempre

(11:30):
lo stesso output. Pertanto non c'è modo che un algoritmo da
solo generi un numero casuale. Se lo fa è un algoritmo con dei problemi.
Un software che deve generare numeri casuali quindi in realtà utilizza un algoritmo deterministico
che produce una sequenza di numeri che sembrano casuali ma non lo sono

(11:53):
realmente. Algoritmi del genere sono principalmente basati su una qualche formula o proprietà
matematica e possono essere anche molto differenti fra loro. Ciascuno di essi produce un risultato
simile ma con le proprie caratteristiche e peculiarità. Uno dei più semplici, tanto

(12:14):
per fare un esempio, abbastanza semplice da poter
essere descritto in un podcast solo audio come pensieri in codice, è il generatore
lineare congruenziale o LCG . In pratica si tratta di una formula
matematica che, preso un numero in input x0, che viene definito seme, lo moltiplica per

(12:39):
un secondo numero prefissato, gli somma un terzo, sempre prefissato, e infine divide tutto per un
quarto numero, ovviamente anche quest'ultimo prefissato. Il resto dell'operazione di divisione
diventa x1, cioè uno dei numeri della sequenza casuale. Poi, l'algoritmo prosegue a rieseguire

(13:01):
l'intero calcolo utilizzando x1 come numero di partenza, al fine di ottenere un valore x2,
e poi di nuovo parte da x2 per ottenere x3, e prosegue così.
Il risultato di questa elaborazione è una lista di numeri x0, x1, x2, x3, ecc., che non

(13:23):
sono realmente casuali, ma lo sembrano, perché seguono una distribuzione statistica che imita
la casualità naturale. I numeri appartenenti a questo tipo di sequenze vengono chiamati numeri
pseudocasuali, e il nome pseudocasuali deriva appunto dal fatto che sembrano casuali,
ma in realtà non lo sono, perché la sequenza è perfettamente e completamente prevedibile se se

(13:49):
ne conosce il numero iniziale, cioè il seme, l'algoritmo prosegue così.
Questa particolare caratteristica della sequenza numerica, che prende il nome di deterministicità,
è molto importante nel campo dello sviluppo software, perché permette di riprodurre specifiche
situazioni agevolando enormemente i processi di test e di debug. Se infatti avessimo necessità

(14:16):
di verificare più volte il corretto funzionamento di un nostro algoritmo che sfrutta una sequenza
pseudocasuale, non dovremmo fare altro che eseguirlo ogni volta a partire da un certo valore del seme,
per essere sicuri che i numeri generati siano sempre uguali, non andando così a disturbare

(14:37):
la nostra analisi sul resto del codice. La deterministicità però non è l'unica caratteristica
interessante delle sequenze pseudocasuali. Come abbiamo già detto, infatti, nonostante non dovrebbero esserci
pattern evidenti o correlazioni significative tra i numeri generati, in realtà una sequenza

(15:00):
pseudocasuale è sempre e solo apparentemente casuale. In primo luogo perché è in realtà una sequenza
ciclica. Proseguendo infatti a sufficienza a generare numeri, prima o poi si ottiene che i valori si
ripetono in modo ciclico. In pratica, scorrendo l'elenco abbastanza a lungo, esso risulta come una o più

(15:22):
catenazioni della stessa serie numerica. Questo fenomeno è dovuto al fatto che gli algoritmi che
generano sequenze pseudocasuali lavorano su un insieme finito di stati, e quindi una volta che
si ripete uno stato precedente, l'intera sequenza si ripete di conseguenza. La lunghezza della sequenza

(15:43):
prima della ripetizione è chiamata periodo, e un buon algoritmo dovrebbe avere un periodo molto lungo per evitare che
la ripetizione dei numeri sia evidente o che generi problemi nell'utilizzo. In secondo luogo poi, una terza
caratteristica interessante è che una buona sequenza pseudocasuale distribuisce i numeri in modo

(16:07):
uniforme sull'intervallo predefinito. Ciò vuol dire che ogni valore dell'intervallo dovrebbe avere la
stessa probabilità di essere scelto, almeno in media, lungo una sequenza sufficientemente lunga.
In altre parole, se ho 10 numeri tra cui scegliere e genero una sequenza pseudocasuale di 1000 elementi,

(16:29):
ciascuno dei numeri a mia disposizione dovrebbe comparire circa 100 volte. L'uno dovrebbe essere presente 100 volte,
il 2 anche, la stessa cosa per il 3 e così via. Possiamo fare anche un esempio pratico pensando di utilizzare un dado.
Se il nostro dado non è truccato, ad ogni lancio ci saranno sempre le stesse probabilità che esca

(16:52):
una qualsiasi delle 6 facce. Se quindi eseguo un gran numero di lanci, il numero di volte in cui
apparirà ciascuna faccia tenderà ad essere circa pari a un sesto dei lanci. Se appunto faccio 1000
tentativi, ciascuna faccia dovrebbe comparire intorno alle 166 volte. Ovviamente non si parla di numeri

(17:14):
esatti, ma di cifre che si avvicinano alla media con l'aumentare delle iterazioni. Infine, le ultime caratteristiche
degne di nota sono che un buon algoritmo che genera sequenze pseudo-casuali dovrebbe essere computazionalmente
efficiente e estremamente sensibile al seme. In altre parole, la generazione di un nuovo numero

(17:37):
pseudo-casuale deve avvenire rapidamente e con un basso impiego di risorse, specialmente in contesti
come simulazioni o criptografia dove sono richiesti milioni di numeri pseudo-casuali. E infine, piccole
variazioni del seme devono produrre sequenze completamente diverse, una proprietà fondamentale

(17:59):
per garantire che in seguito a esecuzioni diverse del codice sia rispettata la variabilità nei
risultati. Abbiamo quindi detto che il software da solo è in grado di generare unicamente delle
sequenze di numeri pseudo-casuali e abbiamo descritto sommariamente come

(18:21):
esse sono caratterizzate, ma per molte applicazioni reali questo tipo di approccio può non essere
sufficiente, anzi spesso non lo è. Esistono molti casi d'uso in cui sequenze pseudo-casuali non
bastano a soddisfare le necessità degli utilizzatori e sono invece necessarie sequenze di

(18:44):
numeri che siano veramente casuali. Una sequenza veramente casuale è tale quando ciascun numero
viene generato in modo completamente imprevedibile, senza alcuna regola deterministica sottostante.
Questo significa che ogni numero nella sequenza è scelto senza alcun legame con i precedenti o

(19:06):
i futuri e nessuna conoscenza dei valori già generati permette a nessuno uomo o macchina che
sia di prevedere quelli successivi. Una cosa questa che, come abbiamo appena detto nel blocco precedente,
nessun software è in grado di realizzare autonomamente. Le sequenze di numeri realmente

(19:28):
casuali dunque, a differenza di quelle pseudo-casuali, non sono cicliche, non sono replicabili in alcun
modo e non sono nemmeno equamente distribuite. Se disegnassimo un diagramma cartesiano per
rappresentare la tipica distribuzione dei valori di una sequenza realmente casuale, in cui l'asse orizzontale

(19:51):
contiene la scala dei possibili numeri risultanti e quello verticale la frequenza con cui essi
appaiono, otterremmo una classica forma a campana, detta anche gaussiana o normale. Il nome "normale"
deriva appunto dal fatto che, in natura, molte variabili legate al ripetersi di eventi casuali

(20:13):
si comportano secondo tale modello, cioè la maggior parte dei risultati si concentra attorno al valore
medio, mentre i valori estremi si verificano più raramente. Per capirci, riprendiamo l'esempio di
prima del dado. Abbiamo detto che, se ne lanciamo uno, le probabilità di ottenere valori da 1 a 6

(20:36):
sono equivalenti ed equamente distribuite. Ma se ne lanciamo due contemporaneamente,
allora le cose cambiano. Con due dadi, infatti, il numero 2 o il 12 avranno una sola
possibilità di venire fuori come risultato, mentre il 6 ne avrà ben 5 di possibilità. Basta fare i

calcoli (20:59):
per totalizzare 2 dovremmo ottenere un 1 su entrambi i dadi e per totalizzare 12 dovremmo
avere due 6. Al contrario, però, per totalizzare un 6 potremmo avere un 1 e un 5 o un 2 e un 4 o 2 3 o un 4 e un 2 o

(21:20):
infine un 5 e un 1. 5 possibilità di totalizzare 6 contro una di totalizzare 2 o 12. Più aumentiamo
il numero di dadi lanciati contemporaneamente e più aumenta questo fenomeno che favorisce
l'uscita dei numeri intorno alla media dell'intervallo. In natura, questo è il comportamento

(21:42):
più comune. A questo punto, insomma, dovrebbe essere chiaro che, per scegliere un numero veramente casuale,
è necessaria una fonte fisica di casualità, qualcosa che non risiede in un software ma
nel mondo materiale. Un numero veramente casuale, infatti, può essere ottenuto solo sfruttando

(22:04):
fenomeni fisici imprevedibili e non deterministici. A differenza dei numeri pseudocasuali generati
da algoritmi, i numeri veramente casuali derivano quindi da processi naturali che
non possono essere predetti o controllati da un modello artificiale.
Esempi di tali processi sono il rumore termico, il decadimento radioattivo, le fluttuazioni

(22:27):
quantistiche o, in generale, tutto ciò che è caotico e imprevedibile. Non c'è limite
ai fenomeni che possono essere utilizzati per perseguire l'obiettivo. Esistono casi
in cui vengono misurate le attività atmosferiche o le particelle provenienti dallo spazio o
le onde radio. Un metodo veramente ingegnoso, ad esempio,

(22:49):
è quello di inquadrare, tramite una telecamera, uno scaffale pieno di lampade lava quelle
lampade con l'acqua e la sostanza colorata che si muove in continuazione e utilizzarne
le immagini come sorgente di casualità. Ricapitolando il discorso, quindi, un software

(23:12):
da solo può generare solo sequenze di numeri pseudocasuali, mentre i fenomeni naturali
sono gli unici
realmente casuali. E quindi, come funzionano i programmi nei nostri computer che generano
i numeri casuali? Come si fa ad assicurare la varietà e l'imprevedibilità negli algoritmi

(23:33):
in cui essa è necessaria? Semplice, si utilizza un approccio ibrido.
Da circa una decina d'anni a questa parte, i processori integrano al proprio interno
dei componenti chiamati generatori di numeri casuali, hardware o HRNG.
Hardware Random Number Generator. Questi sistemi si basano su vari metodi, come la misurazione

(23:56):
del rumore termico o di quello elettrico prodotti dai vari componenti hardware, per effettuare
la scelta di un valore casuale. Il numero così generato dall'HRNG è, di fatto, veramente
casuale, e nell'ambito di questa strategia ibrida viene poi utilizzato come seme per

(24:16):
avviare un algoritmo pseudocasuale.
L'approccio del genere permette di sfruttare contemporaneamente i punti di forza di entrambi
i metodi, e di conseguenza di mitigare i punti deboli di ciascuno. Quello che si ottiene
è quindi una combinazione dei vantaggi di casualità reale dati dall'entropia con quelli
di efficienza e praticità degli algoritmi pseudocasuali. Tre dei principali svantaggi

(24:42):
legati al dover osservare fenomeni fisici per generare numeri casuali sono infatti il
tempo necessario, la non riproducibilità degli eventi e la distribuzione non omogenea
dei risultati che, come abbiamo già detto, si distribuiscono a campana.
Invocando un HRNG per generare solo il primo numero casuale, quindi, si risparmia tempo

(25:08):
e poi basta annotarlo da qualche parte per poterlo riutilizzare eventualmente in caso
di necessità. Al tempo stesso, però, utilizzando tale numero come seme per
un algoritmo pseudocasuale, si ottiene una sequenza che gode delle caratteristiche di
riproducibilità e di equa distribuzione nei risultati e che viene generata in tempi molto

(25:31):
più brevi di quelli necessari se si dovessero osservare i fenomeni fisici.
Infine, utilizzando un seme veramente casuale per avviare un qualsiasi algoritmo pseudocasuale,
si migliora anche la casualità risultante dall'elaborazione e la lunghezza
del periodo della serie. Insomma, in definitiva, l'approccio ibrido offre un risultato equilibrato

(25:55):
tra casualità, efficienza e riproducibilità. Esso infatti garantisce che la sequenza generata
sia sufficientemente imprevedibile e sicura, mantenendo però al tempo stesso la velocità
e la praticità degli algoritmi deterministici, senza dipendere costantemente da sorgenti
fisiche di casualità. Infine, prima di chiudere,

(26:18):
provo ad anticipare una domanda che potresti porti dopo aver ascoltato questo episodio.

Tale domanda è (26:24):
può un Large Language Model generare numeri casuali? D'altronde sembra
quasi che ormai essi possano fare qualunque cosa, secondo alcuni.

Beh, la risposta è semplice (26:34):
un LLM NON può generare numeri veramente casuali, e in realtà
neanche pseudocasuali. Come abbiamo già detto più volte, la vera casualità
deriva solo da processi fisici che sono intrinsecamente imprevedibili, e gli algoritmi di Machine Learning

(26:57):
eseguiti su macchine essenzialmente deterministiche non hanno accesso a tali processi fisici.
Inoltre, il funzionamento delle intelligenze artificiali si basa su modelli matematici
e statistici che vengono prodotti esaminando dei set di dati in fase di addestramento.
I modelli generativi che, lo dice il nome, sono quelli

(27:18):
in grado di generare qualcosa, non possono comunque discostarsi completamente dalle strutture
e dai pattern presenti nei dati di addestramento, e questo limita fortemente anche la loro capacità
di generare numeri pseudocasuali. E così siamo giunti alla fine di questo

(27:41):
episodio. È stato interessante? Io, onestamente, ero un po' stufo di parlare sempre di intelligenza
artificiale, anche se, almeno per il momento, sembra essere il tema più gettonato.
Prima di lasciarti, ti ricordo che Pensieri in Codice è un progetto indipendente che
realizzo nel mio tempo libero e con le mie risorse personali. A questo proposito, come

(28:05):
ormai di consueto da varie puntate a questa parte, ti ricordo anche che si basa interamente
sulla filosofia Value for Value. Ciò significa che è completamente gratuito e disponibile per chiunque
senza pubblicità, ma se lo ascolti spesso vuol dire che per te un po' di valore ce l'ha, tutto sommato.

(28:25):
E quindi ti chiedo di restituirne un po' in qualche modo, secondo le tue modalità preferite. Puoi
spenderci un po' del tuo tempo diffondendolo, parlandone e condividendo gli episodi. Puoi dare
una mano. Ci sono un sacco di cose da fare, per esempio aprire degli account social o aiutarmi con

(28:47):
la stesura degli episodi o risolvere issue su progetti github. O infine puoi mettere mano al
portafoglio e fare una piccola donazione o acquistare un libro dalla mia lista desideri
Amazon. Dai libri viene spesso buona parte delle mie idee. A tal proposito oggi ringrazio come sempre

(29:08):
Edoardo e Carlo per la loro donazione mensile e poi Antonio che ha messo su uno script in Python per
semplificarmi la condivisione delle notizie interessanti su Linkedin. E' a questo che mi
riferisco quando parlo di progetti github. Se non lo sapessi, infatti nel gruppo Telegram,

(29:28):
su Mastodon e da qualche settimana anche su Linkedin, condivido un flusso più o meno
costante di articoli che leggo ogni giorno e che trovo interessanti. Quindi se la cosa
ti interessa trovi il link al gruppo Telegram e le info su come contribuire sul sito per
pensierincodice.it. Mentre trovi me come Valerio Galano tutto attaccato su Linkedin o chiocciola

(29:55):
valeriogalano@mastodon.1 su Mastodon appunto. Bene, detto questo direi che per oggi possiamo
chiudere qui. Io ti ringrazio come sempre per aver ascoltato oggi a maggior ragione. Spero che la
qualità audio non verrà fuori troppo terribile anche perché per evitare i rumori di fondo ho provato

(30:17):
ad impostare il gain al minimo possibile e parlare molto vicino al microfono. E niente,
magari sarai tu a farmelo sapere. Io ti do appuntamento al prossimo episodio e ti
ricordo sempre che un informatico risolve problemi, a volte anche usando il computer.
Advertise With Us

Popular Podcasts

On Purpose with Jay Shetty

On Purpose with Jay Shetty

I’m Jay Shetty host of On Purpose the worlds #1 Mental Health podcast and I’m so grateful you found us. I started this podcast 5 years ago to invite you into conversations and workshops that are designed to help make you happier, healthier and more healed. I believe that when you (yes you) feel seen, heard and understood you’re able to deal with relationship struggles, work challenges and life’s ups and downs with more ease and grace. I interview experts, celebrities, thought leaders and athletes so that we can grow our mindset, build better habits and uncover a side of them we’ve never seen before. New episodes every Monday and Friday. Your support means the world to me and I don’t take it for granted — click the follow button and leave a review to help us spread the love with On Purpose. I can’t wait for you to listen to your first or 500th episode!

Dateline NBC

Dateline NBC

Current and classic episodes, featuring compelling true-crime mysteries, powerful documentaries and in-depth investigations. Special Summer Offer: Exclusively on Apple Podcasts, try our Dateline Premium subscription completely free for one month! With Dateline Premium, you get every episode ad-free plus exclusive bonus content.

24/7 News: The Latest

24/7 News: The Latest

The latest news in 4 minutes updated every hour, every day.

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.