From 1b1461bdb5f46b40b65e57d98ab3945fb552253b Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Thu, 2 Apr 2026 01:24:07 +0000 Subject: [PATCH] loto2 --- core/__pycache__/views.cpython-311.pyc | Bin 27300 -> 35362 bytes core/templates/core/sequential_generator.html | 159 ++++++++--- core/views.py | 250 +++++++++++++----- 3 files changed, 313 insertions(+), 96 deletions(-) diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index 5f9fd1389222681e686fd66615a1d3aabf422dfd..16f331db1d8dcb52f29b018cc96302e2ed5696b7 100644 GIT binary patch delta 14676 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

- SUPERCOMPUTADOR DE ELITE SINCRO: 10.000 CONCURSOS + SUPERCOMPUTADOR DE ELITE SINCRO: {{ supercomputer_sync }} SIMULAÇÕES

-

Gerador Sequencial com Matemática Neural Convergente de 99.9%.

+

Gerador Sequencial com Matemática Neural Convergente, histórico recente e 10.000 simulações por análise.

- PRECISÃO 99.9% ATIVA + SINAL ESTATÍSTICO ATIVO
IA ANALISANDO... @@ -34,7 +34,7 @@
-
CONFIGURAÇÕES DE ELITE MODO 99.9%
+
CONFIGURAÇÕES DE ELITE
@@ -49,7 +49,7 @@
- +
@@ -101,8 +101,8 @@ AGUARDANDO SELEÇÃO...
- PROBABILIDADE DE ACERTO - 99.982% (MATEMÁTICA PURA) + SINAL ESTATÍSTICO + Aguardando dados reais
@@ -159,7 +159,7 @@
-
Elite Verde (Próximo Concurso Real)
+
Faixa Prioritária do Próximo Jogo
@@ -175,14 +175,46 @@
-
HITS DE ELITE
+
PAINEL DO SUPERCOMPUTADOR
-
-
-
Nenhum acerto de elite detectado ainda...
+
+
+
+
+ JANELA REAL +
--
+
+
+
+
+ BASE HISTÓRICA +
--
+
+
+
+
+ ODDS OFICIAIS +
--
+
+
+
+
+ MOTOR +
--
+
+
+
+
+
Top sequências da simulação
+
Selecione uma loteria para carregar o ranking real.
+
+
+
+
+
Nenhum hit de elite detectado ainda...
@@ -210,7 +242,7 @@
-

Números marcados em azul serão IGNORADOS pelo motor de cálculo do Supercomputador.

+

Números marcados em azul serão ignorados pelo motor estatístico nas novas sequências.

@@ -338,21 +370,86 @@ const viewport = document.querySelector(".generator-viewport"); const elitePanel = document.getElementById("elite-panel"); const btnOpenBrowser = document.getElementById("btn-open-browser"); + const signalDisplay = document.getElementById("signal-display"); + const predictionPanel = document.getElementById("prediction-panel"); - // Recalibragem Neural para Elite 99.9% + + function formatNumber(number) { + return number.toString().padStart(2, "0"); + } + + function updateMetricsPanel() { + if (!lotteryData) return; + + document.getElementById("sync-status").innerText = `SINCRO: ${lotteryData.supercomputer_sync.toLocaleString()} SIMULAÇÕES`; + document.getElementById("concurso-info").innerText = `Último concurso real: ${lotteryData.last_real_contest} • janela: ${lotteryData.analysis_window || 0}`; + signalDisplay.innerText = lotteryData.signal_label || "--"; + document.getElementById("metric-window").innerText = `${lotteryData.analysis_window || 0} concursos`; + document.getElementById("metric-draws").innerText = `${lotteryData.total_real_draws || 0} reais`; + document.getElementById("metric-odds").innerText = lotteryData.combination_odds || "--"; + document.getElementById("metric-method").innerText = lotteryData.methodology || "--"; + + const sequences = lotteryData.top_sequences || []; + if (!sequences.length) { + predictionPanel.innerHTML = '
Ainda não há base suficiente para exibir sequências ranqueadas.
'; + return; + } + + predictionPanel.innerHTML = sequences.map((item, index) => ` +
+
${item.numbers.map(formatNumber).join(' • ')}
+ ${item.hits}x +
+ `).join(''); + } + + function buildWeightedSequence() { + const pool = (lotteryData.weighted_numbers || []).filter(item => !annulledFunnel.has(item.num)); + const fallbackPool = []; + for (let i = 1; i <= lotteryData.max_number; i++) { + if (!annulledFunnel.has(i)) fallbackPool.push({ num: i, score: 1 }); + } + const source = pool.length >= lotteryData.numbers_to_draw ? pool : fallbackPool; + const selected = []; + const available = source.map(item => ({ ...item })); + + while (available.length && selected.length < lotteryData.numbers_to_draw) { + const totalWeight = available.reduce((acc, item) => acc + Math.max(item.score || 1, 0.1), 0); + let threshold = Math.random() * totalWeight; + let chosenIndex = available.length - 1; + + for (let idx = 0; idx < available.length; idx++) { + threshold -= Math.max(available[idx].score || 1, 0.1); + if (threshold <= 0) { + chosenIndex = idx; + break; + } + } + + const [picked] = available.splice(chosenIndex, 1); + if (picked && !selected.includes(picked.num)) { + selected.push(picked.num); + } + } + + return selected.sort((a, b) => a - b); + } + + // Recalibragem do motor estatístico async function recalculateDeepElite() { if (!lotteryData) return; const key = lotterySelect.value; - speak(`Sincronizando Supercomputador com 10.000 concursos da ${lotteryData.name}.`); + speak(`Sincronizando Supercomputador com ${lotteryData.supercomputer_sync || 10000} simulações da ${lotteryData.name}.`); const resp = await fetch(`/api/lottery-info/${key}/`); lotteryData = await resp.json(); fillEliteInputs(lotteryData.elite_greens); updateElitePanel(); + updateMetricsPanel(); - speak("Matemática de Elite aplicada com convergência de 99.9%. Previsão para o próximo sorteio calculada."); + speak("Análise atualizada com base no histórico real, atrasos e 10.000 simulações."); } lotterySelect.addEventListener("change", async (e) => { @@ -360,7 +457,6 @@ if (!key) return; document.getElementById("lottery-display").innerText = e.target.options[e.target.selectedIndex].text; - document.getElementById("concurso-info").innerText = "SINCRO 10K: OK"; const resp = await fetch(`/api/lottery-info/${key}/`); lotteryData = await resp.json(); @@ -378,6 +474,7 @@ setupFunnel(lotteryData.max_number); fillEliteInputs(lotteryData.elite_greens); updateElitePanel(); + updateMetricsPanel(); btnStart.disabled = false; resetGenerator(); @@ -431,7 +528,7 @@ if (lotteryData.next_prediction) { const nextDiv = document.createElement("div"); nextDiv.className = "w-100 mt-2 p-2 rounded bg-black border border-warning text-center"; - nextDiv.innerHTML = `PRÓXIMO SORTEIO PREVISTO:
`; + nextDiv.innerHTML = `FAIXA PRIORITÁRIA DO PRÓXIMO JOGO:
`; lotteryData.next_prediction.forEach(n => { nextDiv.innerHTML += `${n.toString().padStart(2, "0")}`; }); @@ -471,20 +568,12 @@ for (let i = 0; i < 5; i++) { let sequence = []; - let attempts = 0; - while (sequence.length < nToDraw && attempts < 500) { - let val; - if (eliteModeActive && eliteNums.length >= nToDraw) { - val = eliteNums[Math.floor(Math.random() * eliteNums.length)]; - } else { - val = Math.floor(Math.random() * maxNum) + 1; - } - - if (!annulledFunnel.has(val) && !sequence.includes(val)) { - sequence.push(val); - } - attempts++; + if (eliteModeActive && eliteNums.length >= nToDraw) { + const shuffledElite = [...eliteNums].filter(val => !annulledFunnel.has(val)).sort(() => Math.random() - 0.5); + sequence = shuffledElite.slice(0, nToDraw); + } else { + sequence = buildWeightedSequence(); } if (sequence.length === nToDraw) { @@ -550,7 +639,7 @@ generatorRunning = true; btnStart.classList.add("d-none"); btnPause.classList.remove("d-none"); - speak("Cálculos iniciados. Supercomputador sincronizado com 10.000 concursos."); + speak("Cálculos iniciados. Supercomputador sincronizado com 10.000 simulações estatísticas."); generateChunk(); }); @@ -595,7 +684,7 @@ let html = ` - HITS DE ELITE - Supercomputador 99.9% + HITS DE ELITE - Supercomputador Estatístico