Novità

Numeri pseudocasuali

SatuRno17

Super Member >PLATINUM<
ciao a tutti, in questo thread provo a cercare affinità tra numeri generati da PRNG e numeri del lotto. Un prng è un algoritmo deterministico che crea una sequenza di numeri con proprietà statistiche simili a quelle dei numeri casuali, partendo da un valore iniziale detto seed. Con lo stesso seed, il PRNG produce sempre la stessa identica sequenza di numeri. Come ho scritto da altre parti, il lotto è un TRNG cioè è un sistema che genera numeri casuali sfruttando un fenomeno fisico realmente imprevedibile (il mescolamento delle palline con getto d'aria), anziché una formula matematica. Quindi come tutti i "metodi" sviluppati per questo gioco, è una perdita di tempo...ma per chi è appassionato di numeri invece... è un passatempo divertente.

ho scritto un primo abbozzo di codice python che condivido insieme all'archivio che è in formato csv e perciò ho dovuto aggiungere l'estensione txt sperando che non rovini il file.

in questo caso il prng è il MT di python e il mescolamento è semplicemente random.shuffle() ma ci sono tanti tantissimi altri modi per mescolare una lista di 90 elementi.


Python:
import csv
class clsArchivio:
    def __init__(self,file_path):
        self.file_path = file_path
        self.estrazioni = []
        self.date = []
    
    def carica(self):
        try:
            with open(self.file_path,newline="") as csvfile:
                lettore = csv.reader(csvfile,delimiter=";")
                for riga in lettore:
                    self.date.append(riga[0])
                    ruote=[]
                    for i in range(1,55+1,5):
                        ruote.append([int(x) for x in riga [i:i+5]])
                    self.estrazioni.append(ruote)
                    
        except Exception as e:
            print(f"Errore nel caricamento dell'archivio !")

archivio = clsArchivio("archivio.csv")
archivio.carica()
ruote = ["Bari","Cagliari","Firenze","Genova","Milano","Napoli","Palermo","Roma","Torino","Venezia","Nazionale"]

import random
seed = 0
random.seed(seed)

print(f"Seed utilizzato: {seed}")
for ruota in range(0,10+1):
    valori_uguali, estratti_rnd = [], []
    for estrazione in archivio.estrazioni:
        numeri = [x for x in range(1,91)]
        random.shuffle(numeri)     
        estratti_rnd = numeri[0:5] 
        valori_uguali.append(len(set(estrazione[ruota]) & set(estratti_rnd)))

    affinità = sum(valori_uguali)/len(valori_uguali)
    print(f"{ruote[ruota]} aff: {affinità}")
 

Allegati

E' sufficiente cambiare il metodo di mescolamento e anche con lo stesso seed si ottengono risultati differenti (permutazioni diverse).

Python:
import random

lista_1 = list(range(1,10))
lista_2 = list(range(1,10))

# 1. shuffle standard (da destra a sinistra) equivale a random.shuffle()
random.seed(42)
for i in range(len(lista_1) - 1, 0, -1):
    j = random.randint(0, i)
    lista_1[i], lista_1[j] = lista_1[j], lista_1[i]

# 2. shuffle da sinistra a destra
random.seed(42)
for i in range(len(lista_2) - 1):
    j = random.randint(i, len(lista_2)-1)   # equivale a randrange(i, len(lista_2))
    lista_2[i], lista_2[j] = lista_2[j], lista_2[i]

print("shuffle 1:", lista_1)
print("shuffle 2:", lista_2)

Quindi in questo caso avremo due permutazioni diverse. Considerando che vogliamo solo 5 numeri (come nel lotto) dobbiamo decidere se prendere i primi 5, gli ultimi 5, oppure possiamo prendere 5 particolari o ancora 5 a caso. In tutti i casi avremo 4 possibilità (perché abbiamo 2 permutazioni e quindi 2 possibili cinquine). Se aggiungo un altro metodo di mescolamento ne avremo 3 e di conseguenza le possibilità aumentano.
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 15 settembre 2026
    Bari
    03
    02
    53
    44
    29
    Cagliari
    85
    81
    31
    53
    23
    Firenze
    27
    40
    34
    71
    81
    Genova
    55
    62
    72
    63
    27
    Milano
    79
    09
    49
    80
    68
    Napoli
    58
    90
    88
    77
    50
    Palermo
    45
    39
    22
    08
    31
    Roma
    39
    41
    04
    54
    63
    Torino
    53
    08
    80
    58
    54
    Venezia
    63
    51
    69
    09
    74
    Nazionale
    16
    45
    75
    60
    18
    Estrazione Simbolotto
    Palermo
    44
    32
    03
    31
    15
Indietro
Alto