Jump to content

Torne-se MEMBRO VIP

E tenha acesso a todo o conteúdo do fórum e os downloads ilimitados.

Quero ser VIP

8 Screenshots

About This File

O que é o Lotomania Pulador?

 

Uma ferramenta que gera conjuntos de cartões para a Lotomania garantindo que qualquer par de cartões tenha no máximo N dezenas em comum. O algoritmo usa backtracking posição a posição — avança bit a bit e recua quando detecta violação, sem gerar combinações inválidas. O resultado é um conjunto de cartões matematicamente balanceados entre si.

 

Cada posição está configurado para 2 dezenas, logo P1 só pode ser 01 ou 02, P2 só pode ser 03 ou 04 e assim sucessivamente.

 

image.thumb.png.dd16fe72b06b8a12597b890dfe57bd1e.png

 

Tanto o Limite de Passo quanto o Gatilho aceitam valores astronômicos ou seja 2^50 = 1.125.899.906.842.624 mas lembre-se o Passo já está está em 600 milhões, quanto maior o Passo maior o tempo de busca.

 

Este software fiz pois há um pequeno BUG no Lotomania3.exe (também na área de downloads) que apesar de permitir este tipo de geração não estava respeitando os limites posicionais e pelo visto este algoritmo ficou muito mais rápido, eu diria que são softwares complementares.

 

Use por sua conta e risco.

 

Sorte a todos,

 

Sphgf

 


What's New in Version 9.0.3   See changelog

Released

O que a versão 9.2 já tinha trazido (WAND)

Na 9.2 foi inserida a fórmula do paper:

·       para cada cartão já aceito :

o   $cur_j = $ repetições já feitas no prefixo

o    → máximo que ainda pode repetir

·       se  o cartão vira “não-essencial” e sai da conta

·       orçamento total

·       gasto mínimo inevitável: para cada posição que falta, conte quantos cartões têm 0 e quantos têm 1, pegue o menor dos dois → 

Se , mesmo escolhendo o melhor bit em todas as posições restantes você vai estourar o  em algum cartão. O ramo inteiro (  possibilidades) é podado de uma vez — é o immediately skipping do WAND.

 

O que mudou na 9.3 (e por que ficou mais rápido)

Na 9.2 o teste viavel() era chamado a cada tentativa de bit. Como cada posição tem 2 tentativas (0 e 1), o programa recalculava toda a soma de orçamentos duas vezes para a mesma posição — um custo  inútil.

A 9.3 corrige isso com três linhas de comentário no código:

JavaScript

// FIX v9.3: viavel() só é computada quando tent[pos]===0let viavelCache=true;

·       Quando você entra numa posição nova (tent[pos]==0), ele calcula viavel() uma vez e guarda em viavelCache.

·       Quando testa o segundo bit (tent=1), ele reusa o resultado — não recalcula.

·       Sempre que volta de nível, aceita um cartão ou faz perturbação, ele zera o cache (viavelCache=false).

Na prática:

·       9.2: 2 × |aceitos| × T operações por nível

·       9.3: 1 × |aceitos| × T operações por nível

Para 300 cartões aceitos com , isso corta quase 50% do tempo de CPU gasto só com a poda WAND, sem mudar o resultado. O algoritmo continua 100% igual em lógica, só evita trabalho repetido.

Resumindo: a 9.3 não muda o que o pulador gera, ela só faz a matemática do WAND ser chamada no momento certo — exatamente como o paper sugere para “less sortings”. Foi feito um ajuste cirúrgico de performance.

 

  • Like 2

User Feedback

Recommended Comments

Sphgf

Posted

Parece que a versão anterior continha algum Bug que às vezes comprometia a geração. Não subi imagens mas há pequenos modificações.

Sphgf

Posted

Acredito que a versão 9.3 está mais dinâmica e bem mais próximo do que imagino pra um pulador, claro que tudo, sempre pode ser melhorado, então não descarto voltar a mexer no código, mas parece que não há bugs que comprometem o correto funcionamento ou desperdício de tempo e processamento agora.

Sorte a todos.

Sphgf

×
×
  • Create New...