From 928c0dddfd196998d46dc6f5b6fd7ac2241ec63c Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Wed, 18 Feb 2026 17:30:19 +0000 Subject: [PATCH] ESTABILIDADE DO SISTEMA 1 --- core/__pycache__/urls.cpython-311.pyc | Bin 990 -> 1220 bytes core/__pycache__/views.cpython-311.pyc | Bin 21674 -> 25659 bytes core/templates/core/index.html | 5 + core/templates/core/sequential_generator.html | 299 ++++++++++++++++++ core/urls.py | 2 + core/views.py | 50 +++ 6 files changed, 356 insertions(+) create mode 100644 core/templates/core/sequential_generator.html diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index 312a4ebf0c37dfe35dcdc6f85a3d82adbff2de15..c640c3c65b6a5a92ad5881d9a8084c25627daa2f 100644 GIT binary patch delta 318 zcmcb|euPtfIWI340}zxxo0|EBiGkrUhyw$>P{!x9jp~w&6F0E(3#T$?al@ojL?$i} z)f5E^@xX<|*03#OW?)zi#1N3q8O56-9?YOAvDu4}hcUHEI6bu}F(to9w>Y)1G&L_d zGcia1mI#DX0_4P}r{)1wl;jsxDJK?W>gVK_l%y6_>SpGp^`| BSup?r delta 109 zcmX@Yd5>LvIWI340}zB-P0h4mVqka-;=lkml<`?^qq-y`S2}wXcZzT@gQm#lNsK&< s%zm0YlbM;lCr2>*a*G0$G6He&ZHCDkm@f%@;OF3HYTyRJB4MC702m<@4gdfE diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index da4f488545f0ac93866a4c0c547da8cc12753067..bf79a635817f15ea6c84b18d2b9499aa89ecebd6 100644 GIT binary patch delta 4930 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
+
Inteligencia matematica aplicada
diff --git a/core/templates/core/sequential_generator.html b/core/templates/core/sequential_generator.html new file mode 100644 index 0000000..7d1d75a --- /dev/null +++ b/core/templates/core/sequential_generator.html @@ -0,0 +1,299 @@ +{% extends "base.html" %} + +{% block content %} +
+
+
+
+
+
+

Gerador Sequencial Inteligente IA

+

Motor Autônomo de Probabilidades Matemáticas

+
+ Voltar ao Início +
+ +
+
+ + +
+
+ + + + +
+
+ + +
+
+
+ Sequências Geradas + 0 +
+
+
+
+ Elite Verde Detectada + 0 +
+
+
+
+ Radar IA: Anulados + 0 +
+
+
+
+ IA Radar: Resgatados + 0 +
+
+
+ + +
+
+
+ +

Aguardando comando do Motor de IA...

+
+
+
+ +
+
Legenda do Motor IA:
+
+
+ + Elite Verde (Alta Chance) +
+
+ + Anulado Frio (Evite) +
+
+ + IA Radar: Resgatado do Anulado +
+
+
+
+
+
+
+ + + + +{% endblock %} diff --git a/core/urls.py b/core/urls.py index 699b118..189d6e1 100644 --- a/core/urls.py +++ b/core/urls.py @@ -9,4 +9,6 @@ urlpatterns = [ path('admin-loto/edit//', views.edit_lottery, name='edit_lottery'), path('admin-loto/ai-predict//', views.ai_auto_predict, name='ai_predict'), path('live-math/', views.live_math, name='live_math'), + path('gerador-sequencial/', views.sequential_generator, name='sequential_generator'), + path('api/lottery-info//', views.lottery_info_api, name='lottery_info_api'), ] diff --git a/core/views.py b/core/views.py index 698791e..f3dd787 100644 --- a/core/views.py +++ b/core/views.py @@ -308,3 +308,53 @@ def live_math(request): except Exception as e: return JsonResponse({"error": str(e)}, status=500) return JsonResponse({"error": "Método inválido"}, status=405) + +def sequential_generator(request): + """Página do Gerador Sequencial Inteligente.""" + loterias = Lottery.objects.all() + return render(request, "core/sequential_generator.html", {"loterias": loterias}) + +def lottery_info_api(request, lottery_key): + """Retorna informações de IA para uma loteria específica via JSON.""" + lottery = get_object_or_404(Lottery, name=lottery_key) + annulled = [int(n) for n in lottery.annulled_numbers.split(',') if n] + + # Pegamos os sorteios para o Radar de Reclamação + draws_db = DrawResult.objects.filter(lottery=lottery) + draw_lists = [[int(n) for n in d.numbers.split(',')] for d in draws_db] + + if not draw_lists: + # Mock se vazio + frequency = {n: random.randint(1, 10) for n in range(1, lottery.max_number + 1)} + else: + frequency = Counter(number for draw in draw_lists for number in draw) + + # Lógica de Elite Verde (Top 25% dos disponíveis) + available_numbers = [n for n in range(1, lottery.max_number + 1) if n not in annulled] + sorted_by_freq = sorted(available_numbers, key=lambda n: frequency.get(n, 0), reverse=True) + hot_count = max(6, int(len(available_numbers) * 0.25)) + elite_greens = sorted_by_freq[:hot_count] + + # IA Radar de Reclamação + last_seen_all = {} + for i, draw in enumerate(reversed(draw_lists)): + for num in draw: + if num not in last_seen_all: + last_seen_all[num] = i + + reclaimed = [] + for n in annulled: + freq = frequency.get(n, 0) + delay = last_seen_all.get(n, len(draw_lists)) + reclaim_score = (freq * 0.6) + (delay * 0.4) + if reclaim_score > (max(frequency.values() or [1]) * 0.8): + reclaimed.append(n) + + return JsonResponse({ + "name": lottery.get_name_display(), + "max_number": lottery.max_number, + "numbers_to_draw": lottery.numbers_to_draw, + "elite_greens": elite_greens, + "annulled_numbers": [n for n in annulled if n not in reclaimed], + "reclaimed_numbers": reclaimed, + })