Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lab Design

Análise Combinatória

Recommended Posts

Sabemos que existem muitos programas pra isso na web mas muitos que testei sempre faltou alguma coisa então eu gostaria de criar meu próprio programa gerador de jogos principalmente para Quina, Megasena e Duplasena.

Recentemente achei gratuitamente o Cologa que achei excelente e realmente cumpre o que promete com extrema rapidez porém ainda falta alguns recursos nele que a meu pode decidir entre tornar-se um ganhador ou mais uma aumentador do prêmio.

Eu tenho quase todas as noções de que preciso para criar mas não consigo um bom exemplo de algum algoritmo para fazer as combinações com fechamento, tipo o que o programa mencionado faz. Tipo escolher 20 dezenas com fechamento de quadra. Ele gera e realmente garante no minimo uma cartão com quadra embora possam ter mais cartões inclusive com quina ou sena. Isso vai depender claro da sorte também.

Eu desenvolvi o projeto baseado nas opções de alguns programas existentes mas utilizando em vez de análise combinatória, o uso de matrizes que garante maior rapidez na geração dos jogos, porém a garantia de acerto dependerá das dezenas sorteadas estarem entre as dezenas selecionadas e da matriz escolhida, já que cada uma combina de maneira diferente os mesmos números.

Sabemos que é impossível fechar 100% em qualquer sistema devido a quantidade de combinações possíveis.

 

Bom utilizando uma matriz, eu escolho as dezenas e substituo pelos índices da matriz e sigo as regras abaixo:

1) Submeter todos os jogos gerados a todos os concursos oficiais da CEF e remover qualquer jogo que já tenha sido sorteado com quadras, quinas ou senas.

Porque: A possibilidade de uma quadra se repetir num sorteio é pequena, quase remota, enquanto que um terno ou duque são mais frequentes. Portanto removendo esses acertos já diminuímos a quantidade de cartões razoavelmente.

 

2) Submeter todos jogos a um simulador de resultados. Esse simulador deve ser capaz de gerar resultados possíveis utilizando somente as dezenas selecionadas. Esse processo pode ser demorado dependendo da quantidade de dezenas.

Em meus testes aqui, 30 dezenas para megasena utilizando um range para cada casa gerou por volta de 130 mil combinações possíveis de resultados válidos. Esse range eu montei baseando nos resultados oficiais. Exemplo na casa 1 da megasena a chance da primeira casa ser manor ou igual a 10 é de 80% contra 20% de ser acima e a media que essa dezena aumenta esse percentual cai gradativamente.

Usando essas observações eu montei um range para a casa 1, casa 2, casa 3, casa 4, casa 5 e casa 6. O metodo que simula os resultados, consulta esses ranges antes de gerar o resultado.

 

Finalisando: O sistema tanto carrega uma matriz e solicita as dezenas conforme a matriz ou carrega um fechamento já pronto, neste caso e cria uma matriz para o fechamento para o caso de querer trocar alguma dezena.

Popula um datagrid com os jogos e oferece o recurso de confrontar com todos os sorteios da CEF, apontando dezenas acertas a partir de 3 e mostra inclusive o primeiro resultado oficial que utilizou na conferência.

O confronto com os resultados simulados também segue o mesmo principio mostrando ao usuário onde ele poderia substituir alguma(s) dezenas do jogo pelo resultado simulado, garantindo de certa forma uma quina ou sena caso o sorteio oficial desse aquele resultado.

 

Faltam algumas opções como impressão de cartões, impressão de relatórios detalhados e para o sistema ficar completo, um gerador de jogos tal qual o simulador porém limitado a x jogos e com alguma garantia de fechamento.

 

Alguem se habilita a dar sugestões?????

O programa está escrito em C# e utiliza como database somente arquivos texto para facilitar a portabilidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer que tipo de sugestão? Sobre a regra de negócio?

 

Abraços...

 

Oi Bruno, qualquer tipo de sugestão será bem vinda.

Só pra você se situar, o sistema já está funcionando (claro com alguns bugs ainda) mas já carrega uma matriz e permite a seleção das dezenas para gerar e mostrar os bilhetes no datagrid. Também carrega todos os resultados dos sorteios da CEF e mostra os possíveis acertos. No grid permite deleção múltipla.

O sistema também pode carregar um fechamento desde que esteja no padrão do cologa ou seja tem um header no arquivo texto que informa a modalidade, quantas dezenas por jogo, fechamento pretendido e condições para acerto.

O sistema também simula resultados baseado nas dezenas selecionadas (isso que não encontrei nos programas que testei) porém seguindo algumas regras claro porque a quantidade de resultados possíveis é enorme porem esse confronto possibilita uma melhor visão dos jogos já que foram combinados por uma matriz e que mesmo saindo todas as dezenas selecionadas nenhum bilhete obteve 5 ou 6 acertos e isso possibilita trocar dezenas para aumentar as chances de acerto.

Se tiver interessado eu posso te passar os fontes por email e você compila ai e trocamos algumas idéias por msn.

 

um abraço.

 

Lauro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu perguntei por que talvez a galera de Lógica pudesse ajudar melhor, não conheço nada de jogo de loteria. Se fosse semana passada aceitava o desafio cara, mas essa semana dei uma mudada nos rumos dos meus serviços e to ate o pescoço com projetos.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lauro estou lendo o seu assunto, e devo dizer que muito me interessou, estou estudando esta parte da programação e me interesso por loteria, você poderia disponibilizar para mim para que eu desse uma olhada nesta logica !agradeço muito .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lauro estou lendo o seu assunto, e devo dizer que muito me interessou, estou estudando esta parte da programação e me interesso por loteria, você poderia disponibilizar para mim para que eu desse uma olhada nesta logica !agradeço muito .

 

Ok - me passa seu email que junto o projeto num zip e te mando.

Eu num to com nenhum site hospedado no momento para upar.

É pequeno, o projeto compilado não chega a 200k.

O projeto está sendo desenvolvido em C# no visual studio 2008.

Usa database no formato texto para portabilidade e não usa dll de terceiros.

 

O sistema está praticamente pronto o que ta pegando agora é o módulo de impressão nos volantes oficiais.

Alguém dá uma ajuda?

Pensei em criar um webbrowser e jogar por uma tabela mas o html num é preciso nas medidas porisso acho que num vai funcionar.

Pensei tambem numa matriz de panels com panel a princípio brancos (que não vai imprimir nada) e quando a dezena daquela posição estiver no jogo, a cor do panel correspondente é trocada para black.

é possivel imprimir um array de panels?

 

A minha idéia seria:

Criar um arraylist de 82 itens sendo:

itens[0] conteria um título qualquer digitado pelo usuário e na linha abaixo o número dos jogos para controle tipo: jogos: 1-2-3....n-n+1-n+2

itens[1]..item[80] seriam retangulos brancos sem contorno porém com altura e largura e margens fixas.

itens[81] 'Impresso pelo programa tal...' e data da impressão

Num loop foreach, recupera o jogo(dezenas combinadas 1..6 ou 1..5 ou até 1..15) numa string[]

converte cada posição da string[] em int para que aponte para uma posição no arraylist itens. Nestas posições do arraylist, o retângulo receberia o background=black.

 

Nesse foreach teria ainda um contador para finalizar o volante ou seja: quina: 2 jogos, megasena e duplasena 3 jogos portanto quando esse contador atingir 3 e deve ser zerado e enviado um comando de formfeed.

 

Agora o mais importante é que terei que usar o preview por dependendo da quantidade de cartões gerados o usuário poderá imprimir página a página e ter a opção de reimprimir se necessário algumas páginas porque infelizmente os volantes oficiais da CEF não tem controle rigoroso de qualidade e o corte da gráfica varia em até 2 mm de um para outro. Claro que isso são lotes portanto uma vez ajustado a altura correta do início da impressão, se todos os volantes estivem com o mesmo padrão de cortes a impressão ocorre sem problema, já caso tenha algum com diferença, essa impressão é perdida dependendo da variação do corte.

 

Só não sei como começar isso tudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lab Design, achei muito interessante seu projeto. Sou especialista em segurança da informacao e desenvolvo scripts em shell.

Estou agora estudando direto C# so que uso ainda a IDE VS2005.

Voce tem como disponibilizar esse codigo para eu analisar junto com voce?

Abraco

Vitor

meu email é vitor@assenet.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.