Ce l'abbiamo fatta!
«L'obiettivo di questo corso è prepararti al tuo futuro tecnico.»
Ciao, Habr. Ricordi quell'incredibile articolo (+219, 2588 nei segnalibri, 429k letture)?
Quindi, Hamming (sì, sì, auto-controllanti e autocorrettivi ) ha scritto un intero , ispirato dalle sue lezioni. Lo stiamo traducendo, perché il tipo sa quello che dice.
Questo libro non parla solo di IT, ma è un libro sullo stile di pensiero delle persone incredibilmente brillanti. «Non è solo un carico di pensiero positivo; descrive le condizioni che aumentano le possibilità di fare un grande lavoro.»
Grazie a Andrey Pakhomov per la traduzione.
La Teoria dell'Informazione è stata sviluppata da C. E. Shannon alla fine degli anni '40. La direzione dei Bell Labs insisteva che la chiamasse 'Teoria della Comunicazione', poiché è un titolo molto più preciso. Per ovvi motivi, il titolo 'Teoria dell'Informazione' ha un impatto molto maggiore sul pubblico, quindi Shannon ha scelto proprio questo, ed è quello che conosciamo ancora oggi. Il titolo stesso suggerisce che la teoria tratta dell'informazione, e questo la rende importante, man mano che ci addentriamo sempre di più nell'era dell'informazione. In questo capitolo toccherò alcune conclusioni fondamentali di questa teoria, fornendo prove non rigorose, ma piuttosto intuitivamente comprensibili di alcune proposizioni di questa teoria, affinché comprendiate davvero cosa sia la 'Teoria dell'Informazione', dove potete applicarla e dove no.
Prima di tutto, che cos'è “informazione”? Shannon identifica l'informazione con l'incertezza. Ha scelto il logaritmo negativo della probabilità di un evento come misura quantitativa dell'informazione che si ottiene quando si verifica un evento con probabilità p. Ad esempio, se ti dico che a Los Angeles c'è nebbia, allora p è vicino a 1, il che sostanzialmente non ci fornisce molte informazioni. Ma se dico che a giugno a Monterey piove, allora in questo messaggio ci sarà incertezza e conterrà più informazioni. Un evento certo non contiene alcuna informazione, poiché log 1 = 0.
Fermiamoci su questo in modo più dettagliato. Shannon credeva che la misura quantitativa dell'informazione dovesse essere una funzione continua dalla probabilità dell'evento p, e per eventi indipendenti dovesse essere additiva: la quantità di informazione ottenuta dall'eventualità di due eventi indipendenti dovesse essere uguale alla quantità di informazione ottenuta dall'eventualità di un evento congiunto. Ad esempio, il risultato di un lancio di dadi e di una moneta è solitamente considerato come eventi indipendenti. Traduciamo quanto sopra nel linguaggio matematico. Se I(p) è la quantità di informazione contenuta in un evento con probabilità p, allora, per un evento congiunto costituito da due eventi indipendenti x con probabilità p1 e y con probabilità p2 otteniamo
![]()
(x e y eventi indipendenti)
Questa è l'equazione funzionale di Cauchy, vera per tutti p1 e p2. Per risolvere questa equazione funzionale, supponiamo che
p1 = p2 = p,
questo porta a
![]()
Se p1 = p2 e p2 = p, allora
![]()
e così via. Estendendo questo processo, utilizzando il metodo standard per gli esponenziali, per tutti i numeri razionali m/n, il seguente è vero
![]()
Dalla presunta continuità della misura informativa, segue che la funzione logaritmica è l'unica soluzione continua dell'equazione funzionale di Cauchy.
Nella teoria dell'informazione, si assume che la base del logaritmo sia pari a 2, quindi una scelta binaria contiene esattamente 1 bit di informazione. Pertanto, l'informazione è misurata secondo la formula
![]()
Fermiamoci un momento e vediamo cosa è successo sopra. Prima di tutto, non abbiamo fornito una definizione del concetto di "informazione", abbiamo semplicemente definito la formula della sua misura quantitativa.
In secondo luogo, questa misura dipende dall'incertezza e, sebbene sia abbastanza adeguata per le macchine, ad esempio, nei sistemi telefonici, radio, televisione, computer, ecc., non riflette la normale comprensione umana dell'informazione.
In terzo luogo, è una misura relativa, che dipende dallo stato attuale della tua conoscenza. Se osservi un flusso di "numeri casuali" da un generatore di numeri casuali, presumi che ogni numero successivo sia incerto, ma se conosci la formula per calcolare i "numeri casuali", il numero successivo sarà noto e, di conseguenza, non conterrà informazioni.
In questo modo, la definizione fornita da Shannon per l'informazione si adatta in molti casi alle macchine, ma sembra non corrispondere alla comprensione umana di questa parola. Proprio per questo motivo, la "Teoria dell'informazione" avrebbe dovuto essere chiamata "Teoria della comunicazione". Tuttavia, è già troppo tardi per cambiare le definizioni (che hanno conferito alla teoria la sua popolarità iniziale e che fanno ancora credere alle persone che questa teoria tratti di "informazione"), quindi siamo costretti ad accettarle, ma dovete comprendere chiaramente quanto la definizione di informazione fornita da Shannon sia lontana dal suo significato di uso comune. L'informazione di Shannon riguarda qualcosa di completamente diverso, ossia l'incertezza.
Ecco cosa bisogna considerare quando si propone una terminologia. Quanto la definizione proposta, ad esempio la definizione di informazione data da Shannon, si allinea con la vostra idea originale e quanto differisce? Non esiste quasi nessun termine che rifletta esattamente la vostra visione precedente del concetto, ma alla fine, è la terminologia utilizzata a riflettere il significato del concetto, quindi la formalizzazione di qualcosa tramite definizioni chiare porta sempre a una certa confusione.
Consideriamo un sistema il cui alfabeto è composto da simboli q con probabilità pi. In questo caso la quantità media di informazione nel sistema (il suo valore atteso) è uguale a:

Questa è chiamata entropia del sistema con distribuzione di probabilità {pi}. Utilizziamo il termine "entropia" perché la stessa forma matematica compare nella termodinamica e nella meccanica statistica. Per questo motivo, il termine "entropia" crea attorno a sé un'aura di importanza, che in definitiva non è giustificata. La stessa forma matematica non implica un'interpretazione identica dei simboli!
L'entropia della distribuzione di probabilità gioca un ruolo fondamentale nella teoria della codifica. L'ineguaglianza di Gibbs per due diverse distribuzioni di probabilità pi e qi è una delle importanti conseguenze di questa teoria. Quindi, dobbiamo dimostrare che

La dimostrazione si basa su un grafico evidente, fig. 13.I, che mostra che
![]()
l'uguaglianza si raggiunge solo per x = 1. Applichiamo l'ineguaglianza a ciascun termine della somma nella parte sinistra:

Se l'alfabeto del sistema di comunicazione è composto da q simboli, allora assumendo la probabilità di trasmissione di ciascun simbolo qi = 1/q e sostituendo q, otteniamo dall'ineguaglianza di Gibbs.


Figura 13.I
Ciò significa che se la probabilità di trasmissione di tutti i q simboli è la stessa e pari a 1/q, allora l'entropia massima è pari a ln q; in caso contrario, vale l'ineguaglianza.
Nel caso di un codice decodificabile in modo univoco, abbiamo l'ineguaglianza di Kraft.

Ora, se definiamo le pseudoprobabilità,

dove è finito,
= 1, come segue dall'ineguaglianza di Gibbs,

e applicando un po' di algebra (ricordate che K ≤ 1, quindi possiamo tralasciare il termine logaritmico e forse rafforzare l'ineguaglianza in seguito), otteniamo

dove L è la lunghezza media del codice.
Quindi, l'entropia è un limite minimo per qualsiasi codice simbolico con lunghezza media del codice L. Questo è il teorema di Shannon per un canale senza rumore.
Ora consideriamo il teorema principale sui vincoli dei sistemi di comunicazione in cui l'informazione è trasmessa come un flusso di bit indipendenti e c'è rumore. Si presume che la probabilità di trasmissione corretta di un bit sia P > 1/2, e che la probabilità che il valore del bit venga invertito durante la trasmissione (si verifichi un errore) sia Q = 1 - P. Per comodità, supponiamo che gli errori siano indipendenti e che la probabilità di errore sia la stessa per ogni bit inviato, cioè che ci sia 'rumore bianco' nel canale di comunicazione.
Supponiamo di avere un lungo flusso di n bit, codificati in un unico messaggio - un'espansione n-dimensionale di un codice a un bit. Definiremo il valore di n in seguito. Consideriamo il messaggio composto da n bit come un punto nello spazio n-dimensionale. Poiché abbiamo uno spazio n-dimensionale - e per semplicità supponiamo che ogni messaggio abbia la stessa probabilità di verificarsi - ci sono M messaggi possibili (M sarà inoltre definito in seguito), di conseguenza, la probabilità di qualsiasi messaggio inviato è
![]()

(mittente)
Grafico 13.II
Analizziamo ora l'idea della capacità di un canale. Senza entrare nei dettagli, la capacità del canale è definita come il massimo volume di informazioni che può essere trasferito in modo affidabile attraverso un canale di comunicazione, considerando l'utilizzo della codifica più efficiente. Non ci sono argomentazioni a favore della possibilità di trasferire più informazioni attraverso un canale di comunicazione rispetto alla sua capacità. Questo può essere dimostrato per un canale binario simmetrico (che utilizziamo nel nostro caso). La capacità del canale, in caso di invio bit per bit, è definita come
![]()
dove, come in precedenza, P è la probabilità di assenza di errori in qualsiasi bit inviato. Quando vengono inviati n bit indipendenti, la capacità del canale è definita come
![]()
Se siamo vicini alla capacità del canale, dobbiamo inviare quasi lo stesso volume di informazioni per ciascuno dei simboli ai, i = 1, …, M. Considerando che la probabilità di ciascun simbolo ai è 1 / M, otterremo
![]()
quando trasmettiamo uno qualsiasi dei M messaggi equi-probabili ai, abbiamo
![]()
Quando inviamo n bit, ci aspettiamo che si verifichino nQ errori. Nella pratica, per un messaggio composto da n bit, avremo circa nQ errori nel messaggio ricevuto. Per valori elevati di n, la variazione relativa (variazione = ampiezza della distribuzione, )
della distribuzione del numero di errori diventerà sempre più stretta all'aumentare di n.
Quindi, dal lato del trasmettitore, prendo il messaggio ai da inviare e disegno una sfera attorno ad esso con un raggio di
![]()
che è leggermente più grande di un valore e uguale a e2, rispetto al numero previsto di errori Q, (figura 13.II). Se n è abbastanza grande, esiste una probabilità arbitrariamente piccola che il punto del messaggio bj sul lato del ricevitore si trovi al di fuori di questa sfera. Rappresentiamo la situazione come la vedo io dal punto di vista del trasmettitore: abbiamo qualsiasi raggio dal messaggio trasmesso ai al messaggio ricevuto bj con una probabilità di errore pari (o quasi pari) a una distribuzione normale, che raggiunge il massimo in nQ. Per qualsiasi valore e2 dato, esiste un n sufficientemente grande tale che la probabilità che il punto ricevuto bj, al di fuori della mia sfera, sia così piccola come desideri.
Ora consideriamo la stessa situazione dal vostro punto di vista (fig. 13.III). Dalla parte del ricevitore c'è una sfera S(r) dello stesso raggio r intorno al punto ricevuto bj nello spazio n-dimensionale, tale che se il messaggio ricevuto bj si trova all'interno della mia sfera, allora il messaggio inviato da me ai si trova all'interno della vostra sfera.
Come può verificarsi un errore? Un errore può verificarsi nei casi descritti nella tabella sottostante:

Figura 13.III

Qui vediamo che, se all'interno della sfera costruita attorno al punto ricevuto esiste almeno un altro punto corrispondente a un possibile messaggio inviato non codificato, allora durante la trasmissione c'è stato un errore, poiché non si può determinare quale dei messaggi sia stato trasmesso. Il messaggio inviato non contiene errori solo se il punto corrispondente si trova nella sfera e non esistono altri punti possibili in questo codice che si trovano nella stessa sfera.
Abbiamo un'equazione matematica per la probabilità di errore Pe, se è stato inviato il messaggio ai

Possiamo eliminare il primo fattore nel secondo termine, considerandolo come 1. In questo modo otteniamo un'ineguaglianza
![]()
È ovvio che
![]()
pertanto
![]()
applichiamo nuovamente all'ultimo termine a destra

Essendo n sufficientemente grande, il primo termine può essere considerato quanto più piccolo possibile, diciamo, inferiore a un certo valore d. Quindi abbiamo

Ora consideriamo come si può costruire un codice di sostituzione semplice per codificare M messaggi costituiti da n bit. Senza avere un'idea su come costruire il codice (i codici di correzione degli errori non erano ancora stati inventati), Shannon scelse la codifica casuale. Lancia una moneta per ciascuno dei n bit nel messaggio e ripetere il processo per M messaggi. In totale è necessario effettuare nM lanci di moneta, quindi sono possibili
![]()
vocabolari di codici, che hanno la stessa probabilità di ½nM. Certamente, il processo casuale di creazione del vocabolario di codici significa che c'è una probabilità di apparizione di duplicati, così come punti di codice che saranno vicini l'uno all'altro e, di conseguenza, saranno fonte di probabili errori. È necessario dimostrare che se ciò non avviene con una probabilità superiore a qualsiasi piccolo livello di errore scelto, allora l'n dato è sufficientemente grande.
Il punto cruciale è che Shannon ha mediato tutti i possibili codici per trovare l'errore medio! Utilizzeremo il simbolo Av [.] per indicare il valore medio su molteplici dizionari di parole casuali. La media su una costante d, ovviamente, produce una costante, poiché per la media ogni termine corrisponde a qualsiasi altro termine nella somma,

che può essere aumentato (M–1 diventa M)

Per qualsiasi messaggio specifico, mediando tutti i libri dei codici, la codifica attraversa tutti i valori possibili, quindi la probabilità media che un punto si trovi nella sfera è il rapporto tra il volume della sfera e il volume totale dello spazio. Il volume della sfera è
![]()
dove s=Q+e2 <1/2 e ns deve essere un numero intero.
L'ultimo termine a destra è il più grande in questa somma. Iniziamo a valutare il suo valore usando la formula di Stirling per i fattoriali. Poi esamineremo il coefficiente di riduzione del termine precedente; si noti che questo coefficiente aumenta spostandosi verso sinistra, e quindi possiamo: (1) limitare il valore della somma alla somma di una progressione geometrica con questo coefficiente iniziale, (2) espandere la progressione geometrica con ns termini a un numero infinito di termini, (3) calcolare la somma di una progressione geometrica infinita (algebra standard, nulla di sostanziale) e infine ottenere il valore limite (per n sufficientemente grande):
![]()
Notate come l'entropia H(s) sia apparsa nell'identità binomiale. Si noti che l'espansione in serie di Taylor H(s)=H(Q+e2) fornisce una stima ottenuta considerando solo la prima derivata e ignorando tutte le altre. Ora riuniamo l'espressione finale:

dove
![]()
Tutto ciò che dobbiamo fare è scegliere e2 in modo che e3 < e1, e quindi l'ultimo termine sarà arbitrariamente piccolo, per n sufficientemente grande. Pertanto, l'errore medio PE può essere reso arbitrariamente piccolo con una capacità del canale arbitrariamente vicina a C.
Se il valore medio per tutti i codici ha un errore sufficientemente basso, allora almeno un codice deve essere appropriato, di conseguenza esiste almeno un sistema di codifica adatto. Questo è un importante risultato ottenuto da Shannon - la "teorema di Shannon per il canale con rumore", anche se va notato che ha dimostrato questo per un caso molto più generale rispetto a un semplice canale binario simmetrico, utilizzato da me. Per il caso generale, le deduzioni matematiche sono molto più complesse, ma le idee non sono così diverse, quindi molto spesso si può rivelare il vero significato del teorema attraverso il caso particolare.
Critichiamo il risultato. Abbiamo ripetuto più volte: "Quando n è sufficientemente grande". Ma quanto deve essere grande n? Molto, molto grande, se vuoi davvero essere contemporaneamente vicino alla capacità del canale ed essere sicuro nella trasmissione dei dati! Così grande che, di fatto, sarai costretto ad aspettare molto a lungo per accumulare un messaggio di così tanti bit da codificare successivamente. In tal modo, la dimensione del dizionario del codice casuale sarà semplicemente enorme (poiché tale dizionario non può essere rappresentato in una forma più breve della lista completa di tutti i Mn bit, dato che n e M sono molto grandi)!
I codici di correzione degli errori evitano l'attesa di un messaggio molto lungo, con la successiva codifica e decodifica attraverso enormi libri di codice, perché evitano i libri di codice come tali e utilizzano invece normali calcoli. Nella teoria semplice, tali codici tendono a perdere la capacità di avvicinarsi alla capacità del canale e, al contempo, mantenere una frequenza di errore sufficientemente bassa, ma, quando il codice corregge un gran numero di errori, mostrano buoni risultati. In altre parole, se riservi una certa capacità del canale per la correzione degli errori, allora devi utilizzare la possibilità di correzione degli errori per la maggior parte del tempo, cioè in ogni messaggio inviato devono essere corretti un gran numero di errori, altrimenti sprecchi questa capacità.
Tuttavia, il teorema dimostrato sopra non è affatto privo di significato! Mostra che i sistemi di trasmissione efficaci devono utilizzare schemi di codifica ben congegnati per lunghe stringhe di bit. Un esempio sono i satelliti che sono andati oltre i confini dei pianeti esterni; man mano che si allontanano dalla Terra e dal Sole, devono correggere un numero crescente di errori nel blocco di dati: alcuni satelliti utilizzano pannelli solari che forniscono circa 5 W, altri fonti di alimentazione atomiche che forniscono circa la stessa potenza. La debole potenza della fonte di alimentazione, le dimensioni ridotte delle antenne di trasmissione e le dimensioni limitate delle antenne riceventi sulla Terra, nonché la grande distanza che il segnale deve percorrere, richiedono l'uso di codici con un alto livello di correzione degli errori per costruire un sistema di comunicazione efficace.
Torniamo allo spazio n-dimensionale che abbiamo utilizzato nella dimostrazione precedente. Discutendo di esso, abbiamo dimostrato che quasi tutto il volume della sfera è concentrato attorno alla superficie esterna, perciò, quasi con certezza, il segnale inviato si troverà sulla superficie della sfera costruita attorno al segnale ricevuto, anche con un raggio relativamente piccolo di tale sfera. Pertanto, non sorprende che il segnale ricevuto, dopo la correzione di un numero arbitrario di errori, nQ, risulti arbitrariamente vicino al segnale senza errori. La capacità del canale di comunicazione che abbiamo esaminato in precedenza è la chiave per comprendere questo fenomeno. Si noti che sfere simili, costruite per codici di Hamming con correzione degli errori, non si sovrappongono. L'alta quantità di dimensioni praticamente ortogonali nello spazio n-dimensionale mostra perché possiamo collocare M sfere nello spazio con una piccola sovrapposizione. Ammettendo una piccola, arbitrariamente piccola sovrapposizione, che può portare solo a un numero limitato di errori durante la decodifica, si può ottenere un posizionamento denso delle sfere nello spazio. Hamming ha garantito un certo livello di correzione degli errori, Shannon — una bassa probabilità di errore, ma mantenendo la reale larghezza di banda approssimativamente vicina alla capacità del canale di comunicazione, cosa che i codici di Hamming non possono fare.
La teoria dell'informazione non indica come progettare un sistema efficiente, ma dirige verso sistemi di comunicazione efficaci. È uno strumento prezioso per costruire sistemi di comunicazione tra macchine, ma, come già sottolineato, non ha un particolare rapporto con il modo in cui gli esseri umani si scambiano informazioni tra di loro. Il grado in cui l'eredità biologica è simile ai sistemi di comunicazione tecnologici è semplicemente sconosciuto; pertanto, al momento non è chiaro quanto sia applicabile la teoria dell'informazione ai geni. Non ci resta altro da fare che provare, e se il successo ci mostrerà il carattere macchinico di questo fenomeno, allora il fallimento indicherà altri aspetti significativi della natura dell'informazione.
Stacchiamoci un attimo. Abbiamo visto che tutte le definizioni iniziali, in maggiore o minore misura, devono esprimere l'essenza delle nostre convinzioni originali, ma presentano un certo grado di distorsione, e quindi risulta che non sono applicabili. È tradizionalmente accettato che, in ultima analisi, la definizione che utilizziamo definisce effettivamente l'essenza; ma, questo ci indica solo come trattare le cose e non porta alcun significato. L'approccio postulativo, così fortemente approvato nei circoli matematici, lascia molto a desiderare nella pratica.
Ora esamineremo un esempio di test di intelligenza IQ, dove la definizione è ciclica quanto vuoi e, di conseguenza, ti inganna. Viene creato un test, che si suppone debba misurare l'intelligenza. Successivamente, viene rivisto in modo da renderlo il più coerente possibile, e quindi pubblicato e calibrato con un metodo semplice affinché l'«intelligenza» misurata risulti normalmente distribuita (naturalmente secondo la curva di calibrazione). Tutte le definizioni devono essere verificate, non solo quando vengono proposte per la prima volta, ma anche molto tempo dopo, quando vengono utilizzate nelle conclusioni formulate. Fino a che punto i confini delle definizioni sono adatti per il compito affrontato? Quanto spesso le definizioni fornite in certe circostanze iniziano a essere applicate in condizioni sufficientemente diverse? Ciò accade piuttosto frequentemente! Nelle scienze umane, con cui inevitabilmente ti troverai a che fare nella tua vita, succede più spesso.
Pertanto, uno degli obiettivi di questa presentazione sulla teoria dell'informazione, oltre a dimostrare la sua utilità, era avvisarti di questo pericolo, o dimostrarti come esattamente utilizzarla per ottenere il risultato desiderato. È stato notato da tempo che le definizioni iniziali condizionano in misura molto maggiore ciò che trovi alla fine di quanto sembri. Le definizioni iniziali richiedono grande attenzione da parte tua non solo in qualsiasi nuova situazione, ma anche in settori con cui lavori da lungo tempo. Questo ti permetterà di capire in quale misura i risultati ottenuti sono una tautologia e non qualcosa di utile.
La famosa storia di Eddington racconta di persone che pescavano in mare con una rete. Studiando le dimensioni del pesce che avevano catturato, hanno determinato la dimensione minima del pesce presente in mare! La loro conclusione era influenzata dallo strumento utilizzato, piuttosto che dalla realtà.
Continua…
Chi vuole aiutare con la traduzione, l'impaginazione e la pubblicazione del libro — scriva in privato o all'indirizzo email magisterludi2016@yandex.ru
A proposito, abbiamo anche lanciato la traduzione di un'altra fantastica libro — )
In particolare stiamo cercando chi può aiutare a tradurre . (traduciamo per 10 minuti, i primi 20 sono già stati presi)
Contenuto del libro e capitoli tradotti
- Introduzione all'Arte di Fare Scienza e Ingegneria: Imparare a Imparare (28 marzo 1995)
- «Fondamenti della Rivoluzione Digitale (Discreta)» (30 marzo 1995)
- «Storia dei Computer — Hardware» (31 marzo 1995)
- «Storia dei Computer — Software» (4 aprile 1995)
- «Storia dei Computer — Applicazioni» (6 aprile 1995)
- «Intelligenza Artificiale — Parte I» (7 aprile 1995)
- «Intelligenza Artificiale — Parte II» (11 aprile 1995)
- «Intelligenza Artificiale III» (13 aprile 1995)
- «Spazio n-Dimensionale» (14 aprile 1995)
- «Teoria del Codice — La Rappresentazione delle Informazioni, Parte I» (18 aprile 1995)
- «Teoria del Codice — La Rappresentazione delle Informazioni, Parte II» (20 aprile 1995)
- «Codici di Correzione degli Errori» (21 aprile 1995)
- «Teoria dell'Informazione» (25 aprile 1995)
- «Filtri Digitali, Parte I» (27 aprile 1995)
- «Filtri Digitali, Parte II» (28 aprile 1995)
- «Filtri Digitali, Parte III» (2 maggio 1995)
- «Filtri Digitali, Parte IV» (4 maggio 1995)
- «Simulazione, Parte I» (5 maggio 1995)
- «Simulazione, Parte II» (9 maggio 1995)
- «Simulazione, Parte III» (11 maggio 1995)
- «Fibra Ottica» (12 maggio 1995)
- «Istruzione Assistita da Computer» (16 maggio 1995)
- «Matematica» (18 maggio 1995)
- «Meccanica Quantistica» (19 maggio 1995)
- «Creatività» (23 maggio 1995). Traduzione:
- «Esperti» (25 maggio 1995)
- «Dati Inaffidabili» (26 maggio 1995)
- «Ingegneria dei Sistemi» (30 maggio 1995)
- «Ricevi ciò che Misuri» (1 giugno 1995)
- (2 giugno 1995) traduciamo in pezzi di 10 minuti
- Hamming, «Tu e la Tua Ricerca» (6 giugno 1995).
Chi vuole aiutare con la traduzione, l'impaginazione e la pubblicazione del libro — scriva in privato o all'indirizzo email magisterludi2016@yandex.ru
Fonte: habr.com
