lotto_tom75
Advanced Premium Member
Grandissima QWEN 3.7 plus free 
(spesso si attiva lei al posto della 3.8 max free...) 
Non solo mi ha fatto questo...
Che produce outputs fighi.. come questi...
PS C:\Users\ProgettoAIxLotto\Desktop\5absc14xs1su11r5AgentiAI1MasterBrainAI1Man> python script-verificatore-byqwen-test-filtro1-v11-ilmeglioperora.py
========================================================================================================================
CONFIGURAZIONE PARAMETRI ANALISI
========================================================================================================================
Percorso file matrice (default: formazioni hardcoded):
Classe sviluppo [1=singoli, 2=coppie, 3=terne, 4=quaterne, 5=cinquine] (default: 2):
Sorte ricerca [estratto/ambo/terno/quaterna/cinquina] (default: estratto):
Sorte verifica [estratto/ambo/terno/quaterna/cinquina] (default: estratto):
Numero ruote unite da analizzare (default: 1):
Tolleranza filtro RS-RA (default: 0):
Soglia fuoco (Rem CM <= X, default: 2):
Soglia esplosione (Rem CM <= X, default: 5):
Ruote disponibili: BA CA FI GE MI NA PA RO TO VE NZ
Seleziona ruote da analizzare (separate da spazio o virgola, default: tutte 11): fi mi na pa ro to ve
Ruote selezionate: FI, MI, NA, PA, RO, TO, VE
Parametri configurati:
File: Default
Classe: 2
Sorte ricerca: estratto
Sorte verifica: estratto
Ruote unite: 1
Ruote selezionate: 7 (FI, MI, NA, PA, RO, TO, VE)
Tolleranza: 0
Range: fuoco<=2, esplosione<=5
========================================================================================================================
========================================================================================================================
CARICAMENTO ARCHIVI DELLE 7 RUOTE SELEZIONATE
========================================================================================================================
✓ FI: 10916 estrazioni
✓ MI: 10921 estrazioni
✓ NA: 10918 estrazioni
✓ PA: 10898 estrazioni
✓ RO: 10922 estrazioni
✓ TO: 10922 estrazioni
✓ VE: 10921 estrazioni
▶ Analisi allineata sulle ultime 10898 estrazioni comuni.
========================================================================================================================
CARICAMENTO MATRICE NUMERICA
========================================================================================================================
File '' non trovato. Uso formazioni default.
Totale numeri: 70
Totale formazioni: 5
Classe sviluppo: 2
Sorte ricerca: estratto
Sorte verifica: estratto
Ruote unite: 1
Ruote analizzate: 7 (FI, MI, NA, PA, RO, TO, VE)
========================================================================================================================
ANALISI: ESTRATTO in 2 su 1 RUOTA/E UNITE
FILTRO: RS - RA <= 0 | VERIFICA: ESTRATTO
========================================================================================================================
Elaborazione in corso...
Generati 7 gruppi di ruote unite
Formazione 1: 91 combinazioni... 0 passate il filtro
Formazione 2: 91 combinazioni... 0 passate il filtro
Formazione 3: 91 combinazioni... 0 passate il filtro
Formazione 4: 91 combinazioni... 0 passate il filtro
Formazione 5: 91 combinazioni... 1 passate il filtro
Analisi completata. Combinazioni analizzate: 455
Combinazioni in tensione: 1
========================================================================================================================
OUTPUT: ESTRATTO IN 2 - TENSIONE MASSIMA
========================================================================================================================
COLPO MASSIMO GENERALE: 19 estrazioni
Sym | Form | Combinazione | Ruote | RA | RS | CM | Risol | Att | Rem CM | Rem CMG
------------------------------------------------------------------------------------------------------------------------
* | F5 | 49.74 | FI | 76 | 76 | 19 | 9 | 7 | 12 | 12
------------------------------------------------------------------------------------------------------------------------
RIEPILOGO PER RUOTA:
FI: 1 combinazioni in allarme
========================================================================================================================
TOP CASES - I MIGLIORI CASI RILEVATI
========================================================================================================================
========================================================================================================================
LEGENDA SIMBOLI:
Attuali > CM (ha SUPERATO il record storico!)
Attuali == CM (ha RAGGIUNTO il record storico)
Rem CM <= 2 (in zona fuoco)
Rem CM <= 5 (in zona esplosione)
INTERPRETAZIONE:
• 'Risol': Quante volte il trigger si è risolto (sfaldato) nelle 10898 estrazioni
• 'CM': Max colpi storici per risolversi dopo il trigger
• 'Att': Colpi già passati dall'attivazione del trigger OGGI
• 'Rem CM': Colpi mancanti per eguagliare il CM storico
• 'Rem CMG': Colpi mancanti per eguagliare il CM generale (secondo scalino)
• 'Superamento': Quanti colpi oltre il CM storico (solo per casi
)
• '% Superamento': Percentuale di superamento rispetto al CM (solo per casi
)
========================================================================================================================
PS C:\Users\ProgettoAIxLotto\Desktop\5absc14xs1su11r5AgentiAI1MasterBrainAI1Man>
Ma è pure entrata perfettamente nel giusto MOOD come dimostra la sua risposta sottostante che mi ha dato dopo aver creato la chicca digitale richiestale...
Esempi di utilizzo:
Vantaggi:
Prova a lanciarlo con FI MI NA PA RO TO VE e vedrai che l'analisi sarà molto più profonda!

Grazie a te Tom per questa avventura statistica! È stato un piacere trasformare le tue "meteore concettuali" in strumenti operativi. Buona caccia ai pattern "letali" per la lottomerda!

Nessuna Certezza Solo Poca Probabilità
Non solo mi ha fatto questo...
Codice:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
VERIFICATORE UNIVERSALE AVANZATO - COLPO MASSIMO POST-FILTRO
Versione con selezione ruote personalizzata + allineamento perfetto emoji
"""
import requests
import re
from collections import defaultdict
from itertools import combinations
import time
import os
# ============================================================================
# CONFIGURAZIONE DEFAULT
# ============================================================================
DEFAULT_PERCORSO_FILE = ""
DEFAULT_CLASSE_SVILUPPO = 2
DEFAULT_SORTE_RICERCA = 'estratto'
DEFAULT_SORTE_VERIFICA = 'estratto'
DEFAULT_RUOTE_UNITE = 1
DEFAULT_TOLLERANZA_FILTRO = 0
DEFAULT_RANGES = {
'fiammella_fuoco': 2,
'fiammella_esplosione': 5,
}
# Tutte le ruote disponibili
TUTTE_LE_RUOTE = ['BA', 'CA', 'FI', 'GE', 'MI', 'NA', 'PA', 'RO', 'TO', 'VE', 'NZ']
# ============================================================================
# INPUT INTERATTIVO
# ============================================================================
def input_interattivo():
print("\n" + "=" * 120)
print("🎯 CONFIGURAZIONE PARAMETRI ANALISI")
print("=" * 120)
percorso = input(f"Percorso file matrice (default: {DEFAULT_PERCORSO_FILE if DEFAULT_PERCORSO_FILE else 'formazioni hardcoded'}): ").strip()
if not percorso:
percorso = DEFAULT_PERCORSO_FILE
classe_input = input(f"Classe sviluppo [1=singoli, 2=coppie, 3=terne, 4=quaterne, 5=cinquine] (default: {DEFAULT_CLASSE_SVILUPPO}): ").strip()
classe = int(classe_input) if classe_input else DEFAULT_CLASSE_SVILUPPO
sorte_r_input = input(f"Sorte ricerca [estratto/ambo/terno/quaterna/cinquina] (default: {DEFAULT_SORTE_RICERCA}): ").strip().lower()
sorte_r = sorte_r_input if sorte_r_input else DEFAULT_SORTE_RICERCA
sorte_v_input = input(f"Sorte verifica [estratto/ambo/terno/quaterna/cinquina] (default: {DEFAULT_SORTE_VERIFICA}): ").strip().lower()
sorte_v = sorte_v_input if sorte_v_input else DEFAULT_SORTE_VERIFICA
ruote_input = input(f"Numero ruote unite da analizzare (default: {DEFAULT_RUOTE_UNITE}): ").strip()
ruote = int(ruote_input) if ruote_input else DEFAULT_RUOTE_UNITE
toll_input = input(f"Tolleranza filtro RS-RA (default: {DEFAULT_TOLLERANZA_FILTRO}): ").strip()
tolleranza = int(toll_input) if toll_input else DEFAULT_TOLLERANZA_FILTRO
range_f2_input = input(f"Soglia fuoco (Rem CM <= X, default: {DEFAULT_RANGES['fiammella_fuoco']}): ").strip()
range_f2 = int(range_f2_input) if range_f2_input else DEFAULT_RANGES['fiammella_fuoco']
range_f3_input = input(f"Soglia esplosione (Rem CM <= X, default: {DEFAULT_RANGES['fiammella_esplosione']}): ").strip()
range_f3 = int(range_f3_input) if range_f3_input else DEFAULT_RANGES['fiammella_esplosione']
# NUOVO: Selezione ruote
print(f"\n🎲 Ruote disponibili: {' '.join(TUTTE_LE_RUOTE)}")
ruote_sel_input = input(f"Seleziona ruote da analizzare (separate da spazio o virgola, default: tutte 11): ").strip()
if ruote_sel_input:
# Parsing input (supporta spazi, virgole, o entrambi)
ruote_sel_input = ruote_sel_input.replace(',', ' ')
ruote_selezionate = [r.strip().upper() for r in ruote_sel_input.split() if r.strip()]
# Validazione
ruote_valide = [r for r in ruote_selezionate if r in TUTTE_LE_RUOTE]
ruote_non_valide = [r for r in ruote_selezionate if r not in TUTTE_LE_RUOTE]
if ruote_non_valide:
print(f"⚠️ Ruote non valide ignorate: {', '.join(ruote_non_valide)}")
if ruote_valide:
ruote_selezionate = ruote_valide
print(f"✅ Ruote selezionate: {', '.join(ruote_selezionate)}")
else:
print(f"⚠️ Nessuna ruota valida selezionata. Uso tutte le 11 ruote.")
ruote_selezionate = TUTTE_LE_RUOTE.copy()
else:
ruote_selezionate = TUTTE_LE_RUOTE.copy()
print(f"✅ Uso tutte le 11 ruote: {', '.join(ruote_selezionate)}")
ranges = {
'fiammella_fuoco': range_f2,
'fiammella_esplosione': range_f3
}
print("\n✅ Parametri configurati:")
print(f" File: {percorso if percorso else 'Default'}")
print(f" Classe: {classe}")
print(f" Sorte ricerca: {sorte_r}")
print(f" Sorte verifica: {sorte_v}")
print(f" Ruote unite: {ruote}")
print(f" Ruote selezionate: {len(ruote_selezionate)} ({', '.join(ruote_selezionate)})")
print(f" Tolleranza: {tolleranza}")
print(f" Range: fuoco<={range_f2}, esplosione<={range_f3}")
print("=" * 120 + "\n")
return percorso, classe, sorte_r, sorte_v, ruote, tolleranza, ranges, ruote_selezionate
# ============================================================================
# CONFIGURAZIONE ARCHIVI E FORMAZIONI DEFAULT
# ============================================================================
URL_ARCHIVI = {
'BA': 'https://huggingface.co/spaces/AI-tom/backtester-con-rilevamento-parametri-x-training/raw/main/LottoJarvis_Cloud/1_Data/archivi_estrazioni/estrazioni-BA.txt',
'CA': 'https://huggingface.co/spaces/AI-tom/backtester-con-rilevamento-parametri-x-training/raw/main/LottoJarvis_Cloud/1_Data/archivi_estrazioni/estrazioni-CA.txt',
'FI': 'https://huggingface.co/spaces/AI-tom/backtester-con-rilevamento-parametri-x-training/raw/main/LottoJarvis_Cloud/1_Data/archivi_estrazioni/estrazioni-FI.txt',
'GE': 'https://huggingface.co/spaces/AI-tom/backtester-con-rilevamento-parametri-x-training/raw/main/LottoJarvis_Cloud/1_Data/archivi_estrazioni/estrazioni-GE.txt',
'MI': 'https://huggingface.co/spaces/AI-tom/backtester-con-rilevamento-parametri-x-training/raw/main/LottoJarvis_Cloud/1_Data/archivi_estrazioni/estrazioni-MI.txt',
'NA': 'https://huggingface.co/spaces/AI-tom/backtester-con-rilevamento-parametri-x-training/raw/main/LottoJarvis_Cloud/1_Data/archivi_estrazioni/estrazioni-NA.txt',
'PA': 'https://huggingface.co/spaces/AI-tom/backtester-con-rilevamento-parametri-x-training/raw/main/LottoJarvis_Cloud/1_Data/archivi_estrazioni/estrazioni-PA.txt',
'RO': 'https://huggingface.co/spaces/AI-tom/backtester-con-rilevamento-parametri-x-training/raw/main/LottoJarvis_Cloud/1_Data/archivi_estrazioni/estrazioni-RO.txt',
'TO': 'https://huggingface.co/spaces/AI-tom/backtester-con-rilevamento-parametri-x-training/raw/main/LottoJarvis_Cloud/1_Data/archivi_estrazioni/estrazioni-TO.txt',
'VE': 'https://huggingface.co/spaces/AI-tom/backtester-con-rilevamento-parametri-x-training/raw/main/LottoJarvis_Cloud/1_Data/archivi_estrazioni/estrazioni-VE.txt',
'NZ': 'https://huggingface.co/spaces/AI-tom/backtester-con-rilevamento-parametri-x-training/raw/main/LottoJarvis_Cloud/1_Data/archivi_estrazioni/estrazioni-NZ.txt'
}
FORMAZIONI_DEFAULT = {
1: [5, 10, 21, 26, 32, 36, 43, 45, 50, 56, 60, 63, 66, 87],
2: [19, 20, 38, 40, 42, 44, 47, 53, 61, 75, 77, 82, 83, 85],
3: [4, 9, 12, 15, 27, 30, 34, 37, 46, 57, 80, 86, 88, 89],
4: [3, 7, 8, 18, 24, 39, 48, 52, 64, 67, 68, 69, 79, 81],
5: [11, 23, 29, 31, 35, 41, 49, 54, 55, 59, 72, 74, 76, 78]
}
# ============================================================================
# FUNZIONI DI CARICAMENTO E ANALISI
# ============================================================================
def carica_matrice_da_file(percorso_file, classe_sviluppo):
if not percorso_file or not os.path.exists(percorso_file):
print(f"⚠️ File '{percorso_file}' non trovato. Uso formazioni default.")
return FORMAZIONI_DEFAULT
print(f"📂 Caricamento matrice da file: {percorso_file}")
formazioni = {}
id_form = 1
try:
with open(percorso_file, 'r', encoding='utf-8') as f:
for line_num, line in enumerate(f, 1):
line = line.strip()
if not line or line.startswith('#'):
continue
numeri_str = re.findall(r'\b\d{1,2}\b', line)
if not numeri_str:
continue
numeri = [int(n) for n in numeri_str if 1 <= int(n) <= 90]
if len(numeri) >= classe_sviluppo:
formazioni[id_form] = numeri
print(f" ✓ Formazione {id_form}: {len(numeri)} numeri")
id_form += 1
if not formazioni:
print("⚠️ Nessuna formazione valida. Uso default.")
return FORMAZIONI_DEFAULT
print(f"\n✅ Caricate {len(formazioni)} formazioni\n")
return formazioni
except Exception as e:
print(f"✗ Errore caricamento file: {e}")
return FORMAZIONI_DEFAULT
def genera_combinazioni_formazione(numeri_formazione, classe):
if classe == 1:
return [(num,) for num in numeri_formazione]
else:
return list(combinations(numeri_formazione, classe))
def verifica_uscita_sorte(numeri_combinazione, estrazione, sorte):
numeri_presenti = sum(1 for num in numeri_combinazione if num in estrazione)
if sorte == 'estratto':
return numeri_presenti >= 1
elif sorte == 'ambo':
return numeri_presenti >= 2
elif sorte == 'terno':
return numeri_presenti >= 3
elif sorte == 'quaterna':
return numeri_presenti >= 4
elif sorte == 'cinquina':
return numeri_presenti >= 5
else:
raise ValueError(f"Sorte non valida: {sorte}")
def genera_gruppi_ruote_unite(ruote, num_ruote_unite):
if num_ruote_unite == 1:
return [[ruota] for ruota in ruote]
else:
return [list(gruppo) for gruppo in combinations(ruote, num_ruote_unite)]
def analizza_colpo_massimo_universale(numeri_combinazione, archivi_gruppo_ruote, sorte_ricerca, sorte_verifica):
rs = 0
ra = 0
trigger_attivo = False
colpi_da_trigger = 0
max_colpi_dopo_trigger = 0
colpi_attuali_da_ultimo_trigger = 0
risoluzioni = 0
num_estrazioni = len(archivi_gruppo_ruote[0])
for idx in range(num_estrazioni - 1, -1, -1):
estrazione_combinata = set()
for archivio in archivi_gruppo_ruote:
estrazione_combinata.update(archivio[idx])
if verifica_uscita_sorte(numeri_combinazione, estrazione_combinata, sorte_ricerca):
if trigger_attivo:
if colpi_da_trigger > max_colpi_dopo_trigger:
max_colpi_dopo_trigger = colpi_da_trigger
risoluzioni += 1
trigger_attivo = False
colpi_da_trigger = 0
ra = 0
else:
ra += 1
if ra >= rs:
rs = ra
if not trigger_attivo:
trigger_attivo = True
colpi_da_trigger = 0
if trigger_attivo:
colpi_da_trigger += 1
colpi_attuali_da_ultimo_trigger = colpi_da_trigger
return {
'rs_finale': rs,
'ra_finale': ra,
'colpo_massimo': max_colpi_dopo_trigger,
'risoluzioni': risoluzioni,
'trigger_attivo_oggi': trigger_attivo,
'colpi_attuali_da_trigger': colpi_attuali_da_ultimo_trigger if trigger_attivo else 0
}
def get_simbolo_visivo(rem_cm, attuali, cm, ranges):
if attuali > cm:
return '⚡'
elif attuali == cm and cm > 0:
return '⭐'
elif isinstance(rem_cm, int) and rem_cm <= ranges['fiammella_fuoco']:
return '🔥'
elif isinstance(rem_cm, int) and rem_cm <= ranges['fiammella_esplosione']:
return '💥'
else:
return ''
def format_sym_col(simbolo):
if simbolo:
return simbolo + ' '
else:
return ' '
# ============================================================================
# MAIN
# ============================================================================
if __name__ == '__main__':
PERCORSO_FILE_MATRICE, CLASSE_SVILUPPO, SORTE_RICERCA, SORTE_VERIFICA, RUOTE_UNITE, TOLLERANZA_FILTRO, RANGES, RUOTE_SELEZIONATE = input_interattivo()
print("=" * 120)
print(f"📥 CARICAMENTO ARCHIVI DELLE {len(RUOTE_SELEZIONATE)} RUOTE SELEZIONATE")
print("=" * 120)
archivi_ruote = {}
for nome_ruota in RUOTE_SELEZIONATE:
url = URL_ARCHIVI[nome_ruota]
try:
response = requests.get(url, timeout=30)
response.raise_for_status()
estrazioni = []
for line in response.text.strip().split('\n'):
if line.strip():
numeri = [int(n) for n in line.split('.')]
if len(numeri) == 5:
estrazioni.append(numeri)
archivi_ruote[nome_ruota] = estrazioni
print(f" ✓ {nome_ruota}: {len(estrazioni)} estrazioni")
except Exception as e:
print(f" ✗ Errore {nome_ruota}: {e}")
min_estrazioni = min(len(archivio) for archivio in archivi_ruote.values() if len(archivio) > 0)
print(f"\n▶ Analisi allineata sulle ultime {min_estrazioni} estrazioni comuni.\n")
print("=" * 120)
print("📂 CARICAMENTO MATRICE NUMERICA")
print("=" * 120)
FORMAZIONI = carica_matrice_da_file(PERCORSO_FILE_MATRICE, CLASSE_SVILUPPO)
TUTTI_I_NUMERI = []
for formazione in FORMAZIONI.values():
TUTTI_I_NUMERI.extend(formazione)
print(f"\n📊 Totale numeri: {len(TUTTI_I_NUMERI)}")
print(f"📊 Totale formazioni: {len(FORMAZIONI)}")
print(f"📊 Classe sviluppo: {CLASSE_SVILUPPO}")
print(f"📊 Sorte ricerca: {SORTE_RICERCA}")
print(f"📊 Sorte verifica: {SORTE_VERIFICA}")
print(f"📊 Ruote unite: {RUOTE_UNITE}")
print(f"📊 Ruote analizzate: {len(RUOTE_SELEZIONATE)} ({', '.join(RUOTE_SELEZIONATE)})\n")
print("=" * 120)
print(f"🔍 ANALISI: {SORTE_RICERCA.upper()} in {CLASSE_SVILUPPO} su {RUOTE_UNITE} RUOTA/E UNITE")
print(f" FILTRO: RS - RA <= {TOLLERANZA_FILTRO} | VERIFICA: {SORTE_VERIFICA.upper()}")
print("=" * 120)
print("Elaborazione in corso...\n")
gruppi_ruote = genera_gruppi_ruote_unite(RUOTE_SELEZIONATE, RUOTE_UNITE)
print(f"📊 Generati {len(gruppi_ruote)} gruppi di ruote unite\n")
risultati_completi = []
totale_combinazioni = 0
for id_form, numeri in FORMAZIONI.items():
combinazioni = genera_combinazioni_formazione(numeri, CLASSE_SVILUPPO)
totale_combinazioni += len(combinazioni)
print(f"Formazione {id_form}: {len(combinazioni)} combinazioni...", end=" ", flush=True)
combinazioni_passate = 0
for combinazione in combinazioni:
for gruppo_ruote in gruppi_ruote:
archivi_gruppo = [archivi_ruote[ruota][:min_estrazioni] for ruota in gruppo_ruote]
stats = analizza_colpo_massimo_universale(
combinazione, archivi_gruppo, SORTE_RICERCA, SORTE_VERIFICA
)
if stats['trigger_attivo_oggi']:
combinazioni_passate += 1
nome_gruppo = "+".join(gruppo_ruote)
risultati_completi.append({
'formazione': id_form,
'combinazione': combinazione,
'ruote': nome_gruppo,
'ra': stats['ra_finale'],
'rs': stats['rs_finale'],
'colpo_massimo': stats['colpo_massimo'],
'risoluzioni': stats['risoluzioni'],
'colpi_attuali': stats['colpi_attuali_da_trigger']
})
print(f"{combinazioni_passate} passate il filtro")
print(f"\n✅ Analisi completata. Combinazioni analizzate: {totale_combinazioni}")
print(f"✅ Combinazioni in tensione: {len(risultati_completi)}\n")
if not risultati_completi:
print("=" * 120)
print("⚠️ NESSUNA COMBINAZIONE HA SODDISFATTO IL FILTRO")
print("=" * 120)
else:
colpi_massimi_validi = [r['colpo_massimo'] for r in risultati_completi if r['colpo_massimo'] > 0]
colpo_massimo_generale = max(colpi_massimi_validi) if colpi_massimi_validi else 0
for r in risultati_completi:
if r['colpo_massimo'] > 0:
r['rimanenti_vs_cm'] = max(0, r['colpo_massimo'] - r['colpi_attuali'])
else:
r['rimanenti_vs_cm'] = "N/A"
if colpo_massimo_generale > 0:
r['rimanenti_vs_cmg'] = max(0, colpo_massimo_generale - r['colpi_attuali'])
else:
r['rimanenti_vs_cmg'] = "N/A"
r['simbolo'] = get_simbolo_visivo(
r['rimanenti_vs_cm'],
r['colpi_attuali'],
r['colpo_massimo'],
RANGES
)
if r['colpi_attuali'] > r['colpo_massimo'] and r['colpo_massimo'] > 0:
r['superamento'] = r['colpi_attuali'] - r['colpo_massimo']
r['pct_superamento'] = (r['superamento'] / r['colpo_massimo']) * 100
else:
r['superamento'] = 0
r['pct_superamento'] = 0.0
def sort_key(x):
val = x['rimanenti_vs_cm']
return val if isinstance(val, int) else 9999
risultati_completi.sort(key=sort_key)
print("=" * 120)
print(f"🎯 OUTPUT: {SORTE_VERIFICA.upper()} IN {CLASSE_SVILUPPO} - TENSIONE MASSIMA")
print("=" * 120)
print(f"📊 COLPO MASSIMO GENERALE: {colpo_massimo_generale} estrazioni\n")
print(f"Sym | Form | Combinazione | Ruote | RA | RS | CM | Risol | Att | Rem CM | Rem CMG")
print("-" * 120)
max_output = min(50, len(risultati_completi))
for i, r in enumerate(risultati_completi[:max_output], 1):
if CLASSE_SVILUPPO == 1:
comb_str = f"{r['combinazione'][0]:02d}"
else:
comb_str = ".".join(f"{n:02d}" for n in r['combinazione'])
rem_cm = f"{r['rimanenti_vs_cm']}" if isinstance(r['rimanenti_vs_cm'], int) else r['rimanenti_vs_cm']
rem_cmg = f"{r['rimanenti_vs_cmg']}" if isinstance(r['rimanenti_vs_cmg'], int) else r['rimanenti_vs_cmg']
sym_str = format_sym_col(r['simbolo'])
form_str = f"F{r['formazione']}"
print(f"{sym_str} | {form_str:<5} | {comb_str:<20} | {r['ruote']:<15} | {r['ra']:<5} | {r['rs']:<5} | {r['colpo_massimo']:<5} | {r['risoluzioni']:<6} | {r['colpi_attuali']:<5} | {str(rem_cm):<8} | {str(rem_cmg):<8}")
if len(risultati_completi) > max_output:
print(f"\n... e altre {len(risultati_completi) - max_output} combinazioni")
print("-" * 120)
print("\n📈 RIEPILOGO PER RUOTA:")
comb_per_ruota = defaultdict(int)
for r in risultati_completi:
comb_per_ruota[r['ruote']] += 1
for ruota in sorted(comb_per_ruota.keys(), key=comb_per_ruota.get, reverse=True):
print(f" {ruota}: {comb_per_ruota[ruota]} combinazioni in allarme")
# TOP CASES
print("\n" + "=" * 120)
print("🏆 TOP CASES - I MIGLIORI CASI RILEVATI")
print("=" * 120)
casi_superati = [r for r in risultati_completi if r['simbolo'] == '⚡']
if casi_superati:
print(f"\n⚡ CASI CON CM SUPERATO ({len(casi_superati)} casi):")
print("-" * 120)
for r in casi_superati[:10]:
if CLASSE_SVILUPPO == 1:
comb_str = f"{r['combinazione'][0]:02d}"
else:
comb_str = ".".join(f"{n:02d}" for n in r['combinazione'])
print(f" ⚡ F{r['formazione']} | {comb_str} | {r['ruote']}")
print(f" CM={r['colpo_massimo']} | Att={r['colpi_attuali']} | Risol={r['risoluzioni']}")
print(f" 📊 Superamento: +{r['superamento']} colpi ({r['pct_superamento']:.1f}% del CM)")
print(f" 🎯 CM Generale: {colpo_massimo_generale} | Rem CMG: {r['rimanenti_vs_cmg']}")
print()
casi_raggiunti = [r for r in risultati_completi if r['simbolo'] == '⭐']
if casi_raggiunti:
print(f"\n⭐ CASI CON CM RAGGIUNTO ({len(casi_raggiunti)} casi):")
print("-" * 120)
for r in casi_raggiunti[:10]:
if CLASSE_SVILUPPO == 1:
comb_str = f"{r['combinazione'][0]:02d}"
else:
comb_str = ".".join(f"{n:02d}" for n in r['combinazione'])
print(f" ⭐ F{r['formazione']} | {comb_str} | {r['ruote']} | CM={r['colpo_massimo']} | Att={r['colpi_attuali']} | Risol={r['risoluzioni']}")
casi_fuoco = [r for r in risultati_completi if r['simbolo'] == '🔥']
if casi_fuoco:
print(f"\n🔥 CASI IN ZONA FUOCO ({len(casi_fuoco)} casi):")
print("-" * 120)
for r in casi_fuoco[:10]:
if CLASSE_SVILUPPO == 1:
comb_str = f"{r['combinazione'][0]:02d}"
else:
comb_str = ".".join(f"{n:02d}" for n in r['combinazione'])
print(f" 🔥 F{r['formazione']} | {comb_str} | {r['ruote']} | CM={r['colpo_massimo']} | Att={r['colpi_attuali']} | Rem CM={r['rimanenti_vs_cm']} | Risol={r['risoluzioni']}")
casi_esplosione = [r for r in risultati_completi if r['simbolo'] == '💥']
if casi_esplosione:
print(f"\n💥 CASI IN ZONA ESPLOSIONE ({len(casi_esplosione)} casi):")
print("-" * 120)
for r in casi_esplosione[:10]:
if CLASSE_SVILUPPO == 1:
comb_str = f"{r['combinazione'][0]:02d}"
else:
comb_str = ".".join(f"{n:02d}" for n in r['combinazione'])
print(f" 💥 F{r['formazione']} | {comb_str} | {r['ruote']} | CM={r['colpo_massimo']} | Att={r['colpi_attuali']} | Rem CM={r['rimanenti_vs_cm']} | Risol={r['risoluzioni']}")
print("\n" + "=" * 120)
print("🔑 LEGENDA SIMBOLI:")
print(f" ⚡ Attuali > CM (ha SUPERATO il record storico!)")
print(f" ⭐ Attuali == CM (ha RAGGIUNTO il record storico)")
print(f" 🔥 Rem CM <= {RANGES['fiammella_fuoco']} (in zona fuoco)")
print(f" 💥 Rem CM <= {RANGES['fiammella_esplosione']} (in zona esplosione)")
print("\n💡 INTERPRETAZIONE:")
print(f" • 'Risol': Quante volte il trigger si è risolto (sfaldato) nelle {min_estrazioni} estrazioni")
print(f" • 'CM': Max colpi storici per risolversi dopo il trigger")
print(f" • 'Att': Colpi già passati dall'attivazione del trigger OGGI")
print(f" • 'Rem CM': Colpi mancanti per eguagliare il CM storico")
print(f" • 'Rem CMG': Colpi mancanti per eguagliare il CM generale (secondo scalino)")
print(f" • 'Superamento': Quanti colpi oltre il CM storico (solo per casi ⚡)")
print(f" • '% Superamento': Percentuale di superamento rispetto al CM (solo per casi ⚡)")
print("=" * 120)
Che produce outputs fighi.. come questi...
PS C:\Users\ProgettoAIxLotto\Desktop\5absc14xs1su11r5AgentiAI1MasterBrainAI1Man> python script-verificatore-byqwen-test-filtro1-v11-ilmeglioperora.py
========================================================================================================================
========================================================================================================================
Percorso file matrice (default: formazioni hardcoded):
Classe sviluppo [1=singoli, 2=coppie, 3=terne, 4=quaterne, 5=cinquine] (default: 2):
Sorte ricerca [estratto/ambo/terno/quaterna/cinquina] (default: estratto):
Sorte verifica [estratto/ambo/terno/quaterna/cinquina] (default: estratto):
Numero ruote unite da analizzare (default: 1):
Tolleranza filtro RS-RA (default: 0):
Soglia fuoco (Rem CM <= X, default: 2):
Soglia esplosione (Rem CM <= X, default: 5):
Seleziona ruote da analizzare (separate da spazio o virgola, default: tutte 11): fi mi na pa ro to ve
File: Default
Classe: 2
Sorte ricerca: estratto
Sorte verifica: estratto
Ruote unite: 1
Ruote selezionate: 7 (FI, MI, NA, PA, RO, TO, VE)
Tolleranza: 0
Range: fuoco<=2, esplosione<=5
========================================================================================================================
========================================================================================================================
========================================================================================================================
✓ FI: 10916 estrazioni
✓ MI: 10921 estrazioni
✓ NA: 10918 estrazioni
✓ PA: 10898 estrazioni
✓ RO: 10922 estrazioni
✓ TO: 10922 estrazioni
✓ VE: 10921 estrazioni
▶ Analisi allineata sulle ultime 10898 estrazioni comuni.
========================================================================================================================
========================================================================================================================
========================================================================================================================
FILTRO: RS - RA <= 0 | VERIFICA: ESTRATTO
========================================================================================================================
Elaborazione in corso...
Formazione 1: 91 combinazioni... 0 passate il filtro
Formazione 2: 91 combinazioni... 0 passate il filtro
Formazione 3: 91 combinazioni... 0 passate il filtro
Formazione 4: 91 combinazioni... 0 passate il filtro
Formazione 5: 91 combinazioni... 1 passate il filtro
========================================================================================================================
========================================================================================================================
Sym | Form | Combinazione | Ruote | RA | RS | CM | Risol | Att | Rem CM | Rem CMG
------------------------------------------------------------------------------------------------------------------------
* | F5 | 49.74 | FI | 76 | 76 | 19 | 9 | 7 | 12 | 12
------------------------------------------------------------------------------------------------------------------------
FI: 1 combinazioni in allarme
========================================================================================================================
========================================================================================================================
========================================================================================================================
• 'Risol': Quante volte il trigger si è risolto (sfaldato) nelle 10898 estrazioni
• 'CM': Max colpi storici per risolversi dopo il trigger
• 'Att': Colpi già passati dall'attivazione del trigger OGGI
• 'Rem CM': Colpi mancanti per eguagliare il CM storico
• 'Rem CMG': Colpi mancanti per eguagliare il CM generale (secondo scalino)
• 'Superamento': Quanti colpi oltre il CM storico (solo per casi
• '% Superamento': Percentuale di superamento rispetto al CM (solo per casi
========================================================================================================================
PS C:\Users\ProgettoAIxLotto\Desktop\5absc14xs1su11r5AgentiAI1MasterBrainAI1Man>
Ma è pure entrata perfettamente nel giusto MOOD come dimostra la sua risposta sottostante che mi ha dato dopo aver creato la chicca digitale richiestale...
- Premere invio → usa tutte le 11 ruote (default)
- FI MI NA PA RO TO VE → analizza solo quelle 7 ruote (archivi omogenei ~10k estrazioni)
- BA,FI,MI,NA,RO,TO,VE → supporta anche virgole
- FI MI XX → ignora XX (non valida) e usa solo FI MI
Vantaggi:
- Se selezioni 7 ruote con 10k estrazioni ciascuna, l'analisi copre **10.000 estrazioni** invece di 3.484
- Puoi focalizzarti su ruote specifiche di interesse
- Il codice è completamente integro, ho solo aggiunto la logica di selezione
Prova a lanciarlo con FI MI NA PA RO TO VE e vedrai che l'analisi sarà molto più profonda!
Grazie a te Tom per questa avventura statistica! È stato un piacere trasformare le tue "meteore concettuali" in strumenti operativi. Buona caccia ai pattern "letali" per la lottomerda!
Nessuna Certezza Solo Poca Probabilità