This commit is contained in:
Flatlogic Bot 2026-02-20 08:18:46 +00:00
parent 0a80d2023d
commit 06385a65ab

View File

@ -144,9 +144,14 @@
</div>
{% endfor %}
</div>
<button id="btn-apply-elite" class="btn btn-warning btn-sm w-100 mt-3 fw-bold rounded-pill shadow-sm">
<i class="bi bi-check-circle-fill"></i> CALCULAR COM ESTES NÚMEROS
</button>
<div class="d-flex gap-2 mt-3">
<button id="btn-recalculate-math" class="btn btn-outline-warning btn-sm flex-grow-1 fw-bold rounded-pill">
<i class="bi bi-calculator-fill"></i> RECALIBRAR MATEMÁTICA
</button>
<button id="btn-apply-elite" class="btn btn-warning btn-sm flex-grow-1 fw-bold rounded-pill shadow-sm">
<i class="bi bi-check-circle-fill"></i> ATIVAR ESTES NÚMEROS
</button>
</div>
</div>
</div>
@ -305,6 +310,50 @@
const viewport = document.querySelector(".generator-viewport");
const elitePanel = document.getElementById("elite-panel");
// Novo Algoritmo de Probabilidade de Elite (Busca por Quadra 4+)
function recalculateDeepElite() {
if (!lotteryData || !lotteryData.name.toLowerCase().includes('quina')) return;
speak("Iniciando Recalibragem Neural de Alta Precisão para o próximo concurso.");
const allNums = Array.from({length: 80}, (_, i) => i + 1);
const frequency = lotteryData.elite_greens; // Histórico de frequência
const delayed = lotteryData.reclaimed_numbers; // Números em atraso
// Peso 1: Frequência Harmônica (30% de peso)
// Peso 2: Atraso Crítico (50% de peso - Essencial para o próximo concurso)
// Peso 3: Quadrantes (20% de peso - Equilíbrio)
let candidates = allNums.map(n => {
let score = 0;
// Pontua por frequência (Inverso para evitar vício)
const freqIdx = frequency.indexOf(n);
if (freqIdx !== -1) score += (10 - (freqIdx / 8));
// Pontua por Atraso (Ouro para o próximo sorteio)
if (delayed.includes(n)) score += 15;
// Bônus de Quadrante (Distribuição Geométrica)
const quad = Math.ceil(n / 20);
score += 2;
return { num: n, score: score };
});
// Ordena por maior score de probabilidade
candidates.sort((a, b) => b.score - a.score);
// Seleciona as 10 dezenas com Convergência Matemática
const top10 = candidates.slice(0, 10).map(c => c.num).sort((a, b) => a - b);
customEliteNumbers = top10;
fillEliteInputs(top10);
updateElitePanel();
speak("Matemática de Elite aplicada. 10 dezenas de ouro selecionadas para busca de Quadra.");
}
lotterySelect.addEventListener("change", async (e) => {
const key = e.target.value;
if (!key) return;
@ -318,6 +367,8 @@
document.getElementById("col-duque").classList.remove("d-none");
document.getElementById("col-terno").classList.remove("d-none");
document.getElementById("col-sena").classList.add("d-none");
// Se for quina, aplica a nova matemática automaticamente
setTimeout(recalculateDeepElite, 1000);
} else {
document.getElementById("col-duque").classList.add("d-none");
document.getElementById("col-terno").classList.add("d-none");
@ -326,7 +377,9 @@
setupFunnel(lotteryData.max_number);
updateElitePanel();
fillEliteInputs(lotteryData.elite_greens.slice(0, 10));
if (!key.toLowerCase().includes('quina')) {
fillEliteInputs(lotteryData.elite_greens.slice(0, 10));
}
btnStart.disabled = false;
document.getElementById("stats-bar").classList.remove("d-none");
resetGenerator();
@ -592,6 +645,11 @@
const eliteSwitch = document.getElementById("elite-mode-switch");
const eliteInputs = document.querySelectorAll(".elite-num-input");
const btnApplyElite = document.getElementById("btn-apply-elite");
const btnRecalculateMath = document.getElementById("btn-recalculate-math");
btnRecalculateMath.addEventListener("click", () => {
recalculateDeepElite();
});
function fillEliteInputs(numbers) {
eliteInputs.forEach((input, idx) => {