Come Claus Wilke scrive nel suo Substack, anche se tutti noi sappiamo che 42 è la Risposta alla Domanda Fondamentale sulla Vita, l’Universo e Tutto Quanto non per questo dobbiamo usare 42 per inizializzare un generatore di numeri casuali. Perché? Perché in questo modo i numeri sono tutto meno che casuali. Insomma, abbiamo dei generatori di numeri pseudocasuali, come il Mersenne Twister, che hanno un periodo di \( 10^6000 \) e quindi ti garantiscono per quanto possibile di non avere mai la stessa successione, e poi crei sempre la stessa successione? Su Github c’è mezzo milione di progetti che usano 42 come seme per inizializzare il generatore di numeri casuali. E se chiedi a un LLM quale seme usare, chiaramente ti risponderà 42 perché lo ha trovato così spesso nell’addestramento.
Sì, dirà qualcuno, ma se dobbiamo testare un software può essere necessario avere sempre la stessa successione di numeri. E allora come facciamo? Semplice: scegliamo un numero a caso, partendo chessò dal numero di secondi dall’epoch (comando date +%s), ce lo salviamo e usiamo quello come seme, magari dopo aver sommato il prodotto del numero di caratteri dell’homepage di due siti distinti. L’importante è avere qualcosa che è solo nostro.
…poi c’è chi, qualche lustro fa, si è letto qualche migliaio di byte da /dev/urandom, se li è salvati da qualche parte e da allora usa sistematicamente i primi N come stato iniziale dei generatori random che gli capitano sotto mano (KISS32 e 64, Mersenne twister, PRNG vari)…
Certo, se qualcuno scrivesse un generatore random con uno stato a 42 interi si risolverebbe il problema con ampia soddisfazione!