Quando i giocatori di Minecraft trovano un seed bello lo condividono. Quel breve numero dà vita a un mondo quasi infinito.
Ma com’è possibile? Il segreto sta nella generazione random dei numeri da parte dei computer.
Dovete sapere, infatti, che un computer è per natura una macchina deterministica. Non è quindi generalmente capace di pensare fuori dagli schemi e dire dei numeri a caso.
Alcuni informatici ci sono riusciti ma serve sempre un numero iniziale da dare all’algoritmo perché generi numeri casuali.
E tale numero è proprio il seed.
E questo algoritmo genererà sempre gli stessi numeri dalla base di quel seed.
Mentre voi camminate per il mondo di Minecraft, quindi, una funzione randomica genera il mondo sulla base di quel seed.
Ma, come abbiamo detto prima con quel seed qualsiasi computer creerà gli stessi numeri e quindi lo stesso mondo, da cui la possibilità di diffondere mondi con poco sforzo.
E quando non scegliamo un seed? Viene scelto randomicamente. O meglio, pseudorandomicamente: come accennavo i PC non sono bravi col random e quindi esistono delle funzioni di sistema che, sulla base di alcuni fattori (cose come il tempo di sistema, i processi aperti o il movimento del mouse), generano un numero molto più random (ma non perfettamente) che potrà.essere usato per generarne altri, ossia come seed.
E la cosa non è importante solo per Minecraft ma anche per tante altre applicazioni, come la cifratura delle connessioni: non a caso un possibile attacco ad esse è forzare un seed in modo da conoscere prevedibilmente ciò che avverrà.
E se serve vera casualità e non pseudocasualità? L’unica cosa è uscire dal mondo informatico e andare nel reale: c’è chi usa i dadi e c’è chi, invece, misura fenomeni quantistici o decadimenti radioattivi.
Cloudflare sul proprio Blog riporta come loro usano un muro di Lava Lamp per usare il mondo reale per generare vera casualità!