{"id":1611,"date":"2012-10-10T15:19:22","date_gmt":"2012-10-10T14:19:22","guid":{"rendered":"http:\/\/xmau.com\/wp\/ilpost\/?p=1611"},"modified":"2019-12-10T20:58:58","modified_gmt":"2019-12-10T19:58:58","slug":"generatore-mentale-di-numeri-pseudocasuali","status":"publish","type":"post","link":"https:\/\/xmau.com\/ilpost\/2012\/10\/10\/generatore-mentale-di-numeri-pseudocasuali\/","title":{"rendered":"Generatore mentale di numeri (pseudo)casuali"},"content":{"rendered":"<p>Avete mai provato a giocare a carta, forbici e sasso contro un computer? No?  Pu\u00f2 essere un&#8217;esperienza interessante, anche se frustrante. L&#8217;anno scorso era apparso sul New York Times <a href=\"http:\/\/www.nytimes.com\/interactive\/science\/rock-paper-scissors.html\">un link a un programma<\/a> contro cui giocare a rock, paper, scissors (il nome inglese del gioco). Il programma era genuino, nel senso che decideva la sua mossa prima di sapere quale fosse la vostra. Eppure se si faceva una trentina di partite era molto probabile che il vincitore complessivo fosse lui. Il trucco per\u00f2 c&#8217;era, in un certo senso: il programma valutava la successione dei simboli da voi mostrati in precedenza, e immaginava la struttura, il pattern se volete parlare difficile, che voi avevate inconsciamente seguito nelle vostre scelte; e vi fregava.<\/p>\n<p><!--more-->Questo esempio dovrebbe avervi fatto capire, se non ci avevate mai pensato, come quello dei numeri casuali \u00e8 un bel business. I numeri casuali servono ovunque, dalla crittografia alla simulazione numerica; tra l&#8217;altro ne servono tanti, quindi occorre anche generarli in qualche modo. Un tempo il sistema pi\u00f9 semplice per avere una lista di numeri casuali era mettersi con tanta pazienza a registrare i numeri usciti su una roulette: il <a href=\"http:\/\/it.wikipedia.org\/wiki\/Metodo_Monte_Carlo\">metodo Monte Carlo<\/a> non prende il nome da questa usanza, per\u00f2 fa capire come la roulette sia stata per molto tempo il meccanismo pi\u00f9 casuale noto agli uomini. Un altro metodo molto casuale richiede un contatore Geiger e del materiale radioattivo, ma come potete immaginare non \u00e8 che sia molto usato se non in contesti ben particolari.<\/p>\n<p>Ma oggi ci sono i computer, mi direte. Un qualunque trabiccolo appena pi\u00f9 potente della calcolatrice trovata nel fustino di detersivo ha una funzione random(), o rand(), o rnd(), o srand(), o insomma qualcosa che come dice il nome stesso genera numeri casuali. Dov&#8217;\u00e8 il problema, allora? Beh, il piccolo guaio \u00e8 che un computer \u00e8 bravo a fare tante cose, ma non esattamente a generare numeri casuali, visto che per definizione i numeri vengono generati secondo una formula che \u00e8 tutto meno che casuale. In effetti esistono <a href=\"http:\/\/it.wikipedia.org\/wiki\/Generatore_hardware_di_numeri_casuali\">generatori hardware di numeri casuali<\/a>, ma non li si trova certo sul PC che abbiamo a casa; ci dobbiamo accontentare di generatori di <a href=\"http:\/\/it.wikipedia.org\/wiki\/Numeri_pseudo-casuali\">numeri <b>pseudo<\/b>casuali<\/a>, tali cio\u00e8 che se non ne prendiamo troppi non riusciamo a notare la differenza con i numeri casuali: meglio, non ci riesce nemmeno un programma statistico oppure il robot del New York Times.<\/p>\n<p>(Nota a margine: le cifre decimali di pi greco per il momento soddisfano tutti i test di casualit\u00e0; se non fosse computazionalmente abbastanza scomodo crearle, si potrebbero tranquillamente usare come successione di numeri casuali. Eppure sono tutto meno che casuali, no? Tutto questo per dire che il concetto di &#8220;numero casuale&#8221; \u00e8 molto, molto scivoloso. Fine della nota a margine)<\/p>\n<p>Storicamente, i primi algoritmi di generazione di numeri pseudocasuali implementati nei computer sono stati i <a href=\"http:\/\/it.wikipedia.org\/wiki\/Generatore_lineare_congruenziale\">generatori lineari congruenziali<\/a>, in inglese Linear Congruential Generator o LGC: si parte da un numero a caso (ehm&#8230;, vabb\u00e8, in genere si guarda l&#8217;ora e si prendono i milionesimi di secondo o quello che si pu\u00f2 avere) <i>X<\/i><sub>0<\/sub> e si generano ricorsivamente i numeri successivi con la formula <\/p>\n<blockquote><p><em>X<sub>n+1<\/sub> = (aX<sub>n<\/sub> + c)<\/em> mod <em>p<\/em><\/p><\/blockquote>\n<p>dove naturalmente <i>a, c, p<\/i> sono scelti opportunamente; per esempio \u00e8 utile anche se non indispensabile che <i>p<\/i>sia un numero primo. Un vantaggio non indifferente di un LCG \u00e8 che quando si ha bisogno di numeri <b>non<\/b> casuali, per esempio per debuggare un programma, si pu\u00f2 usare sempre lo stesso <i>X<\/i><sub>0<\/sub> (&#8220;seme&#8221;, o &#8220;seed&#8221; se siete anglofoni) ed essere sicuri che la successione generata sia la stessa. <\/p>\n<p>Premesso tutto questo, qualche mese fa un pazzoide ha scritto <a href=\"http:\/\/blog.yunwilliamyu.net\/2011\/08\/14\/mindhack-mental-math-pseudo-random-number-generators\/\">un post<\/a> che spiegava come avere un LCG abbastanza semplice da poter essere calcolato a mente. Il nostro cervello umano, il wetware come lo chiama Rudy Rucker, naturalmente \u00e8 ben diverso da un cervello elettronico: a parte la velocit\u00e0 di calcolo infinitesima, noi abbiamo una capacit\u00e0 di memoria piuttosto limitata, e preferiamo lavorare in base 10 piuttosto che in base 2. Tutto ci\u00f2 si traduce in una scelta completamente diversa dei parametri per il generatore. <\/p>\n<p>Yun William Yu, il pazzoide di cui dicevo, d\u00e0 alcune possibilit\u00e0, a seconda della capacit\u00e0 del calcolatore umano di fare i conti a mente. In tutti i casi usa <i>c<\/i>=0, per ridurre la quantit\u00e0 di informazione da tenere a mente. Il primo suo esempio di LCG \u00e8 <i>X<\/i><sub><i>n<\/i>+1<\/sub> = 6<i>X<\/i><sub><i>n<\/i><\/sub> mod 59. Stop! Non scappate! Non \u00e8 cos\u00ec terribile come sembra! Un minimo di algebra aiuta a semplificarci la vita. Sappiamo che 60 = 1 mod 59; quindi a partire da un numero qualunque, diciamo 42, basta moltiplicare per 6 la cifra delle unit\u00e0 e sommare quella delle decine per ottenere il numero successivo. Da 42 abbiamo dunque 16, 37, 45, 34, 27, 44&#8230; A partire da questa successione prendiamo la <i>nostra<\/i> successione di numeri casuali, usando solo la cifra delle unit\u00e0: 2, 6, 7, 5, 4, 7, 4, &#8230; Questo naturalmente a meno che non ci servano proprio numeri pseudocasuali tra 1 e 58, il che mi pare piuttosto improbabile. Inutile dire che si possono anche ricavare numeri binari (pari=0, dispari=1), ternari per giocare contro il robottino del NYT o altro. Sta a voi scegliere.<\/p>\n<p>Attenzione: non solo i numeri generati in questo modo non sono poi troppo casuali, visto che per definizione al pi\u00f9 dopo 58 iterazioni sono stati generati tutti i numeri possibili e la storia, pardon la successione, si ripete; ma proprio perch\u00e9 vengono generati i numeri da 1 a 58 si ha che il 9 e lo 0 appariranno con una frequenza leggermente inferiore alle altre cifre. In compenso c&#8217;\u00e8 un vantaggio: il seme di partenza lo possiamo scegliere semplicemente guardando l&#8217;orologio e prendendo il valore dei minuti, o dei secondi se preferite. <\/p>\n<figure id=\"attachment_2200\" aria-describedby=\"caption-attachment-2200\" style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/i0.wp.com\/www.ilpost.it\/wp-content\/uploads\/bloggers\/2012\/10\/1999.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.ilpost.it\/wp-content\/uploads\/bloggers\/2012\/10\/1999.png?resize=300%2C240\" alt=\"\" width=\"300\" height=\"240\" class=\"size-full wp-image-2200\" \/><\/a><figcaption id=\"caption-attachment-2200\" class=\"wp-caption-text\">raffigurazione visuale di un LGC della forma X --&gt; 20X mod 1999<\/figcaption><\/figure>\n<p>Se vi sentite pi\u00f9 sicuri delle vostre abilit\u00e0 computatorie, William d\u00e0 altri due esempi: <i>X<\/i><sub><i>n<\/i>+1<\/sub> = 50<i>X<\/i><sub><i>n<\/i><\/sub> mod 101 e <i>X<\/i><sub><i>n<\/i>+1<\/sub> = 20<i>X<\/i><sub><i>n<\/i><\/sub> mod 1999. Nel primo caso, il numero successivo della sequenza \u00e8 dato da <i>X<\/i><sub><i>n<\/i>+1<\/sub> = 101 &minus; <i>X<\/i><sub><i>n<\/i><\/sub>\/2 se <i>X<\/i><sub><i>n<\/i><\/sub> \u00e8 pari, e <i>X<\/i><sub><i>n<\/i>+1<\/sub> = 50 &minus; (<i>X<\/i><sub><i>n<\/i><\/sub>&minus;1)\/2 se \u00e8 dispari. Con questo generatore appaiono tutti i numeri da 1 a 100, quindi non c&#8217;\u00e8 la distorsione del primo generatore presentato. Il secondo generatore invece ha un ciclo pi\u00f9 lungo (non proprio 1998 ma 999, per ragioni simili a quelle per cui il periodo di 1\/13 non \u00e8 lungo 12 cifre ma solo 6), e soprattutto \u00e8 molto pi\u00f9 difficile da usare: partendo da un numero occorre prendere le ultime due cifre, moltiplicarle per 20 e sommare le altre tenute da parte. Da 314, per esempio, si calcola 14&times;20 = 280 e si somma 3 per arrivare a 283. Il caustico giudizio \u00e8 &#8220;probabilmente mentre fate questi conti a mente vi sbagliate e finite nell&#8217;altro ciclo di 999 elementi, il che fa solo bene alla casualit\u00e0!&#8221;<\/p>\n<p>Qui a sinistra vedete un&#8217;immagine, presa sempre dal blog di William, che mostra visualmente la casualit\u00e0 dell&#8217;ultima cifra dei numeri ottenuti con quest&#8217;ultimo generatore. Se l&#8217;ultima cifra del numero \u00e8 0, allora \u00e8 stato usato il nero; se \u00e8 9, il bianco; altrimenti sono state usate 8 sfumature di grigio. Il disegno non diventer\u00e0 certo un bestseller, per\u00f2 direi che \u00e8 sufficientemente casuale, no? <\/p>\n<p>Bene! Ora potete avere qualche chance a sasso, forbici, carta. Non vi sentite pi\u00f9 sollevati?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Noi umani non siamo capaci a procedere a caso. Per\u00f2 con un po&#8217; di matematica, un minimo di abilit\u00e0 nel calcolo mentale e possibilmente la capacit\u00e0 di tenere a mente un paio di numeri \u00e8 possibile simulare abbastanza bene un generatore di numeri casuali.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_publicize_message":"Generatore mentale di numeri (pseudo)casuali","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[104,221,193],"class_list":["post-1611","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-algoritmi","tag-calcolo-mentale","tag-numeri-casuali"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/phh2yP-pZ","jetpack-related-posts":[{"id":730,"url":"https:\/\/xmau.com\/ilpost\/2016\/03\/11\/siamo-stati-superati-dalle-macchine-anche-nel-go\/","url_meta":{"origin":1611,"position":0},"title":"Siamo stati superati dalle macchine anche nel Go?","author":".mau.","date":"11\/03\/2016","format":false,"excerpt":"Alla seconda vittoria consecutiva di AlphaGo contro il secondo giocatore mondiale, forse dobbiamo rifare i nostri conti","rel":"","context":"In \"go\"","block_context":{"text":"go","link":"https:\/\/xmau.com\/ilpost\/tag\/go\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2606,"url":"https:\/\/xmau.com\/ilpost\/2013\/05\/13\/siamo-tutti-pedagoghi\/","url_meta":{"origin":1611,"position":1},"title":"Siamo tutti pedagoghi","author":".mau.","date":"13\/05\/2013","format":false,"excerpt":"Visto che anche quest'anno ci sono state le solite polemiche sulle prove Invalsi di matematica - trovate qua una lunga lettera di Giorgio Israel che \u00e8 storicamente contrario a questi test per ragioni di principio da lui bene argomentate - ho pensato che posso anch'io buttarmi nella polemica, prendendo come\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.ilpost.it\/wp-content\/uploads\/bloggers\/2013\/05\/invalsi2013.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":2458,"url":"https:\/\/xmau.com\/ilpost\/2011\/11\/16\/non-mi-piace-la-fisica\/","url_meta":{"origin":1611,"position":2},"title":"Non mi piace la fisica","author":".mau.","date":"16\/11\/2011","format":false,"excerpt":"Matematici e fisici sono come cani e gatti (di Schr\u00f6dinger?). Ecco il mio punto di vista.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":593,"url":"https:\/\/xmau.com\/ilpost\/2015\/07\/03\/sapete-risolvere-questo-problema\/","url_meta":{"origin":1611,"position":3},"title":"Sapete risolvere questo problema?","author":".mau.","date":"03\/07\/2015","format":false,"excerpt":"Per trovare la soluzione a un problema \u00e8 spesso importante sapere quali domande fare.","rel":"","context":"In \"confirmation bias\"","block_context":{"text":"confirmation bias","link":"https:\/\/xmau.com\/ilpost\/tag\/confirmation-bias\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":619,"url":"https:\/\/xmau.com\/ilpost\/2015\/09\/07\/che-cose-il-caso\/","url_meta":{"origin":1611,"position":4},"title":"Che cos&#8217;\u00e8 il caso?","author":".mau.","date":"07\/09\/2015","format":false,"excerpt":"Non \u00e8 facile definire cos'\u00e8 una sequenza casuale, perch\u00e9 non possiamo mai essere certi di avere una piena conoscenza di quello che c'\u00e8 dietro di essa.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2442,"url":"https:\/\/xmau.com\/ilpost\/2011\/10\/12\/scimmie-shakespeare-sciocchezze\/","url_meta":{"origin":1611,"position":5},"title":"Scimmie, Shakespeare, sciocchezze","author":".mau.","date":"12\/10\/2011","format":false,"excerpt":"Non penserete mica che il progetto di Jesse Anderson abbia un qualche senso?","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/posts\/1611","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/comments?post=1611"}],"version-history":[{"count":1,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/posts\/1611\/revisions"}],"predecessor-version":[{"id":1613,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/posts\/1611\/revisions\/1613"}],"wp:attachment":[{"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/media?parent=1611"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/categories?post=1611"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xmau.com\/ilpost\/wp-json\/wp\/v2\/tags?post=1611"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}