Jump to content

rockcavera

Super VIP
  • Posts

    373
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by rockcavera

  1. Quase nunca comento sobre isso, mas gosto de jogar com as estatísticas. Vou jogar na independência com minha matriz 100% de lucro se acertar 15 de 21 dezenas. Os 21 números vou escolher da seguinte forma: 13 que saíram no último concurso e 8 que não saíram no último concurso.
  2. Você pode pedir no cabeçalho do requerimento que venha compactado em gzip, assim a transferência é mais rápida, desde que sua linguagem tenha suporte para descompactar gzip, é claro. Outro detalhe, você tem q definir um cookie "security=true" para a solicitação não vir com resposta "302 Found".
  3. Outra forma de prever isso, é automatizar o sistema para fazer a previsão história e ver a porcentagem de acerto do sistema.
  4. Esperando as dezenas dos próximos concursos. No concurso 2401 você acertou.
  5. Boa madrugada, Silva. Alguma explicação para isso? Abraço.
  6. Isso vai contra a lei. É exploração de jogo de azar. O forum poderia ter problemas legais.
  7. Fiz uns teste aqui e é impossível, @Wata. O máximo que você vai conseguir são 2 linhas no desdobramento. A partir da terceira linha, já vai haver mais de um prêmio de 11 ou mais. A partir do momento que uma linha do desdobramento tem mais de 6 iguais dezenas iguais a de outra linha, já vai haver mais de dois prêmios. Sem repetir 6 é possível fazer apenas 2 linhas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 e qualquer outra que não repita mais de 6 dezenas com essa. Depois disso a terceira linha obrigatoriamente vai ter mais de 6 dezenas repetidas com a primeira ou segunda linha. Exemplo: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 16 17 18 19 20 21 22 23 24 Entre a primeira e a segunda linha se repetem 6 Adicionando uma terceira linha repetindo menos possível: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 16 17 18 19 20 21 22 23 24 7 8 9 10 11 12 13 18 19 20 21 22 23 24 25 Entre a primeira e a terceira repetem 7. Entre a segunda e a terceira repetem 7. A partir dai já temos linhas que vão premiar em mais de uma linha do desdobramento. Exemplo: 1 2 3 4 7 8 9 10 11 12 13 18 19 20 21 1 2 3 4 7 8 9 10 11 12 13 18 19 20 21 -> 11 pontos com a primeira linha 1 2 3 4 7 8 9 10 11 12 13 18 19 20 21 -> 11 pontos com a terceira linha Abraço.
  8. Obrigado pela rápida resposta. Infelizmente não satisfaz também os requisitos impostos pelo @Wata. Acredito que seja uma missão impossível
  9. Tive um tempo para voltar a este tópico e no computador fazer a verificação. Infelizmente esse sistema que passei não preenche os requisitos que você mencionou, pois pode haver mais de um jogo premiado no sistema. Agora não sei se há como fazer o que você pede. Talvez o @luiz.antonio possa disponibilizar o desdobramento dele para verificarmos.
  10. Se não me engano eu fiz isso em um desdobramento 25,15,11,15=60, no qual vai haver apenas 10 dezenas repetindo. Também, se não me engano, isso se chama desdobramento geométrico e nem sempre é possível. Não estou no computador, mas já postei no fórum. Vou pegar o link.
  11. Não tenho muito a acrescentar, mas vou dar minha visão. Acredito que a forma mais rápida de se fazer isso é com uma câmera para fotografar. Se você precisa de velocidade, fotografar é mais rápido que escanear. O maior desafio é construir algo que puxe os comprovantes dos jogos, ou seja, mesmo problema de um scanner, segundo li nos tópicos anteriores. O scanner evita a parte de automação e manipulação de vários "hardwares" separados, pois se for uma usar câmera fotográfica, você vai ter que criar todo um sistema de disparo, integrar com uma forma de puxar e soltar os comprovantes... Isso acredito que não seja difícil fazer, pois já deve ter coisas prontas para arduino, só vai precisar botar um timer para sincronizar com a troca de comprovante. O mais fácil de tudo é criar o reconhecimento de caracteres. Há diversas bibliotecas para isso, ainda mais o que se pretende reconhecer são linhas "-------", números e algumas palavras, pois a "FONTE" dos comprovantes são universais. Então, o treinamento para reconhecer vai ser especifico para ela. Como o @doisjá disse, é melhor transformar a foto em monocromática para se fazer o reconhecimento, pois, até onde conheço, o reconhecimento se faz com hashes, ou seja, assinaturas. Infelizmente a parte de automação não posso ajudar, pois nada entendo. A parte de programação seria algo interessante.
  12. Só marcando o tópico, pois achei algo interessante que preciso ver depois, com calma, no computador. Quando estou com insônia venho ler as "loucuras". Abraços.
  13. Acredito que isso é mais caso para um Contador. Talvez um advogado especializado em tributário e empresarial também responda. Eu atuo com criminal e família. Nem na época da faculdade eu arriscava tributário. Mesmo assim, vou dar meu palpite, sem pesquisar a situação do prestador do serviço de bolões, pois teria que ver caso a caso (se é pessoa natural ou jurídica, modelo de sociedade, opção tributária...). Ao meu ver, uma empresa bem constituída, para fornecer serviços de tais naturezas, teria que arcar com IR e ISS (aqui não vou falar de verbas trabalhista e previdenciárias, pois vou focar apenas na empresa e não nos trabalhadores/colaboradores). O IR (Imposto de Renda) pode ser o imposto de renda da pessoa natural ou jurídica. Aqui não existe malandragem, até porque toda a circulação de dinheiros dos caras é por via eletrônica (não é?), então não teria como fugir da movimentação do dinheiro que entra e sai das contas. Ou paga ou o leão te come, ao menos que você seja isento ou imune (neh? abrir uma igreja e receber o dinheiro como dízimo). Aqui a competência da cobrança é da União. Do outro lado temos o ISS (Imposto Sobre Serviço). Aqui é o seguinte: prestou serviço, tem que pagar! No entanto, a forma de pagamento aqui pode variar. Você pode pagar por cada serviço prestado, incidindo o valor do imposto sobre o valor do serviço, de acordo com alíquota de cada Cidade (Sim! O ISS é imposto municipal). Ou, também, dependendo da opção tributária e do tamanho da empresa, pode usar a alíquota única, na qual você paga um valor fixo do ISS. Então, ao menos que tal empresa seja imune ou isenta, ela vai ter que pagar, ao meu ver, estes dois impostos. E sim, teriam que emitir nota fiscal, pois estão prestando um serviço. O fato de não emitirem a nota fiscal com certeza é devido a alguma malandragem fiscal.
  14. Só para não passar batido, vou explicar o motivo de não compensar otimizar tal código. Existem outras formas de se obter matrizes/desdobramentos/sistemas/fechamentos que são mais atuais que essa lógica deste programa. Não desmerecendo, até porque esta é uma lógica comum quando se entende o que é preciso para gerar um sistema. Só o fato de você conseguir chegar neste entendimento já lhe dá méritos, ainda mais fazendo sozinho. Ocorre que, esse método nem sempre vai trazer a melhor solução, mas pode ser usado para encurtar a utilização de outros métodos mais elaborados, como: Problem Dependent Optimization (PDO) e Simulated Annealing. Com certeza existe coisa melhor ainda, pois existe muita gente inteligente pesquisando e criando algoritmos para isso, mas não necessariamente para uso em loterias. Você mesmo já me passou links usando estes métodos. Abraço.
  15. Sei que não perguntou para mim, mas o código acima pode ser melhorado sim. Tem várias coisinhas que podem ser feitas de outras formas que vão fazer o desempenho saltar. A conversão é muito fácil. Eu converti para Nim em menos de 2 horas, isso sem saber Python. Fui olhando tutorial de Python e fazendo a transcrição do código. Funcionou perfeitamente e rodou cerca de 35 vezes mais rápido, isso sem fazer qualquer otimização. No entanto, não vale a penas otimizar o código, pois o algoritmo é simples e não é vantajoso. Praticamente uma versão sem otimizações do gencover meu. Ou seja, ele gera todas combinações de V,M e V,K, depois fica adicionando combinações de V,K na matriz de saída até que todas as combinações de V,M estejam cobertas segundo a garantia T. A seleção das combinações de V,K, que irão compor a matriz são feita da seguinte maneira a cada adição: verifica-se todas as combinações de V,K restantes com as combinações de V,M restantes e pega-se a combinações de V,K que mais elimina combinações de V,M. É simples assim. Com certeza é um dos métodos mais simples de gerar matrizes/desdobramentos/fechamentos (ou qualquer outro nome que dê para isso). Quem quiser o código Nim, conversão nua e crua, apenas com ajustes para se comportar igual ao código Python original: # Tradução para Nim do código Python em https://thelotteryforum.com/code-skulptor.php?id=user303_FzKynHVfSjm4VIx import std/[algorithm, strutils] const ch = ['A','B','C','D','E','F','G','H','I','J','K','L'] # v if_match = 5 # m min_match = 3 # t numbers_per_ticket = 5 # k proc check(ind: var seq[int], i, group_size, l: int): int = if i >= 0: ind[i] += 1 if ind[i] > (l - 1 - (group_size - 1 - i)): return check(ind, i - 1, group_size, l) else: return i else: return i - 1 proc combinations(li: openarray[char], group_size: int): seq[tuple[comb: seq[char], count: int]] = var index = newSeq[int](group_size) for i in 0 ..< group_size: index[i] = i let l = len(li) while index[0] <= (l - group_size): var comb = newSeqOfCap[char](group_size) for z in 0 ..< group_size: add(comb, li[index[z]]) add(result, (comb, 0)) let i = group_size - 1 lowestchange = check(index, i, group_size, l) for j in (lowestchange + 1) ..< group_size: # Índices negativos em Python retornam a lista na ordem de traz para frente. # Em Nim dá erro. Este código faz ter o mesmo comportamento de Python. if j > 0: index[j] = index[j - 1] + 1 elif j == 0: index[0] = index[^1] + 1 else: let i1 = abs(j) i2 = abs(j - 1) index[^i1] = index[^i2] + 1 proc row_match(row1, check1: seq[char]): int = for item in row1: if item in check1: result += 1 var dot_count = 1 proc row_matches_count(clist, checklist: var seq[tuple[comb: seq[char], count: int]]) = for i in 0 ..< len(checklist): write(stdout, '.') dot_count += 1 if (dot_count mod 100) == 0: dot_count = 1 write(stdout, '\n') checklist[i].count = 0 for k in 0 ..< len(clist): if clist[k].count == 0: let c = row_match(clist[k].comb, checklist[i].comb) if c >= min_match: checklist[i].count += 1 proc allchecked(clist: seq[tuple[comb: seq[char], count: int]]): bool = for clistrow in clist: if clistrow.count == 0: return false return true proc markcheck(clist: var seq[tuple[comb: seq[char], count: int]], checkrow: seq[char]) = for i in 0 ..< len(clist): if clist[i].count == 0: let c = row_match(clist[i].comb, checkrow) if c >= min_match: clist[i].count = 1 proc myCmp(a, b: tuple[comb: seq[char], count: int]): int = # Código adicionado para comparação e ordenação. if a.count == b.count: return 0 elif a.count < b.count: return -1 else: return 1 var comb = combinations(ch, if_match) mylist = combinations(ch, numbers_per_ticket) var keys: seq[seq[char]] while not allchecked(comb): echo "\nProcessing..." row_matches_count(comb,mylist) sort(mylist, myCmp, Descending) add(keys, mylist[0].comb) markcheck(comb, mylist[0].comb) del(mylist, 0) echo "\nPossible Result, buys followed by number of match" for i in 0 ..< len(comb): let linenum = i + 1 write(stdout, linenum, "-result ") let checkrow = comb[i].comb write(stdout, join(checkrow, ""), " buys: ") for key in keys: let c = row_match(checkrow, key) write(stdout, join(key, ""), " ", c, " ") write(stdout, '\n') echo "number of key lines: ", len(keys) write(stdout, "Keys: ") for key in keys: write(stdout, join(key, ""), " ") echo "" echo "\n", len(ch), " Wheel, if match ", if_match, ", win ", min_match, " with ", len(keys), " tickets (", numbers_per_ticket, " numbers per ticket)." echo "end program!" Obs: a impressão de caracteres na tela é mais lerda no Nim que no Python. O teste de velocidade que fiz, eu comentei as impressões desnecessárias, apenas retornando a matriz gerada. Essa lerdeza da impressão no Nim se dá principalmente no Windows que o cmd.exe (prompt de comandos) é por buffer e o Nim até hoje não otimizou a impressão. Obs2: Nim gera código C não muito legível para inexperientes.
  16. Esse código é simples de rodar. Baste ter o Python instalado, configurar as 4 primeiras linhas e dar um "python nome.py" no prompt de comandos (famoso CMD.exe). Obs: "nome.py" é o nome do arquivo que você vai salvar o código. As configurações estão nas 4 primeiras linhas.: #You can change below 4 lines to values you want and run program #---------------------------------------------------------------- ch = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N'] #characters to use as number substitutes for wheeling keys/pattern if_match = 5 #if we match this number of numbers in our wheel min_match = 3 #minimum guarantee match numbers_per_ticket = 5 #numbers on per line on a ticket # ------------------------------------------------------------- A variável CH é uma lista com os elementos da combinação. Aqui no forum, estamos acostumados a chamar de V. Claro que o V será a contagem da quantidade de elementos. No caso do código acima, o programador inseriu letras para facilitar a substituição pelos números escolhidos depois. A variável IF_MATCH é o que chamamos de M. Ou seja, é a condição que precisa ser respeitada para termos a garantia T. A variável MIN_MATCH é o que chamamos de T. Portanto, é a garantia mínima pretendida com o sistema/desdobramento/fechamento. Por fim, a variável NUMBERS_PER_TICKET é o que chamamos de K. É a quantidade de elementos por combinação. Não olhei o código todo ainda, apenas testei e funciona perfeitamente. Depois vou dar uma olhada mais a funda e fazer algumas considerações. Abraço. Edit: @Bruno Cintra, antes que eu me esqueça, sempre que colar um código (linhas de programação), utilize um campo código do editor de publicação. Vide no Print.
  17. http://www.mpf.mp.br/pgr/noticias-pgr/para-pgr-e-inconstitucional-lei-que-valida-contratos-de-renovacao-de-servicos-lotericos-sem-devida-licitacao
  18. Venho aqui prestar alguns esclarecimentos a todos aqueles que ainda usam o site lotdrw.tk. Já faz 1 ano e 3 meses que inaugurei este projeto e estava meio parado, até então. Fiquei sem o que fazer este final de semana e resolvi finalizar algumas funcionalidades pendentes no site, mas que não eram essenciais para o funcionamento principal. Pois bem. Aqui estão as adições que foram feitas: 1) Adicionado sistema de redefinição de senha. Sabe quando você não lembra a senha de cadastro e não consegue acessar mais o site ou enviar seus sistemas pelo programa? Então, agora você pode redefinir sua senha de forma fácil e simples; 2) Adicionada página para ver seu perfil. Nesta página você pode acessar os dados da sua conta, como: data de registro, e-mail e número de sistemas enviados. Além de poder alterar o nome e a senha. Claro, isso só é acessível quando você entra com seu e-mail e senha no site; e 3) Melhoria no sistema de envio de e-mails (tanto de cadastro quanto para redefinir a senha). Esta melhoria visa fortalecer a confiabilidade dos e-mails enviados pelo site, para que não sejam considerados spams e encaminhados para lixeira ou caixa de spam. Ainda fiz algumas alterações no site que não surtem efeitos para os usuários, mas que melhoraram a navegabilidade. Já em relação ao programa, ainda não tive tempo para terminar aquilo que mencionei nesta postagem. Mas, assim que tiver, irei fazer. Algumas estatísticas do site: 1) 24 usuários cadastrados e confirmados; 2) Sendo que, destes 24 cadastrados, 7 já enviaram pelo menos 1 sistema; 3) 1289 sistemas enviados, Fora os possíveis sistemas inversos que podem ser gerados a partir destes; e 4) O último sistema cadastrado foi enviado dia 13 de março de 2021. Desde já, obrigado a todos que ajudam.
  19. Sempre vejo alguém pedido todas as combinações da mega, quina, lotofácil... para facilitar a vida desse povo, eu resolvi fazer esse programinha simples. Ele gera todas as combinações de V,K e armazena elas em um arquivo .txt. Eu, particularmente, não vejo muita utilidade, mas há quem pode ver, como há quem pede no fórum. Então, é mais fácil essa pessoa baixar o programa, rodá-lo e obter o que deseja, que esperar por alguém fazer, compactar o arquivo e enviar para algum lugar (alguma das vezes são arquivos bem grandes). Então é isso ai. Download Leia-me.txt O gencombs é um gerador de todas as combinações possíveis de V,K, armazenando-as em um arquivo CV,K.txt. Exemplo: Combinações de 5,3. Irá criar um arquivo C5,3.txt com estas linhas: 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5 V = Total de números. Ex: V = 5 (1 2 3 4 5) K = Números usados em cada combinação (linha). Ex: K = 3 (1 2 3) No qual: 0 < V <= 100 (V maior que 0 e V menor ou igual a 100, ou seja, de 1 até 100) 0 < K <= V (K maior que 0 e K menor ou igual a V, ou seja, de 1 até V) O zip possui dois arquivos. O gencombs64.exe e o gencombs.32.exe. O com final 64 é para sistemas operacionais 64 bits e o 32 para os sistemas operacionais 32 bits. Há uma limitação para criar arquivos de até 4GB em sistemas operacionais de 32 bits. Isso é uma limitação da arquitetura e não do programa em si. Para abrir o programa, basta dar um duplo clique no gencombs64.exe ou gencombs32.exe. O programa rodará em uma janela de comandos. Basta seguir as instruções. Após informar os parâmetros V e K, o gerador calculará a quantidade de combinações e o tamanho que terá o arquivo, para, então, perguntar se de fato deseja gerar as combinações. É um programa muito simples. No entanto, tenha cuidado para não gerar combinações muito grandes, que irão ocupar o seu HD ou SSD todo. Por isso, preste muito atenção no tamanho do arquivo antes de confirmar para gerar. No entanto, caso acabe confirmando e se arrependendo no meio do caminho, dê um CTRL + C, que o programa irá fechar. Os arquivos gerados possuem o caractere nova linha (LF), padrão do unix. Optei por usá-lo, pois os sistemas operacionais Windows atuais o reconhecem sem problema, bem como economiza 1 byte por combinação. Ou seja, caso gere todas as combinações de 60,6, irá economizar 50.063.860 bytes (47,744 MB). Recomendo não usar o notepad.exe (famoso Bloco de Notas do Windows) para visualizar arquivos muito grandes (maiores de 100 MB). Recomendo utilizar o KLOGG (https://klogg.filimonov.dev/) ou outros. Este programa foi feito por rockcavera - oculto
  20. Estava olhando os códigos e achei um gencover64.nim. Olhei e estava feito já para trabalhar com V até 63. Já fiz o upload e está no mesmo link do de cima. Tanta coisa que nem lembrava que tinha feito o código e algumas otimizações nele em comparação com o outro. Observação: não me recordo da qualidade do programa em relação a tratamento de erros, pois faz tempo que fiz. Mas acredito que esteja bem fraquinho em relação a isso. Download
  21. Irei te chamar, agora estou pelo cel. Hora que eu tiver um tempo de sentar a bunda no computador, te mando mensagem. Depois vou tentar usar dentro de uma pasta onedrive para ver. Mas no win10 funciona geralmente em qualquer lugar rodando sem privilégios de admin, menos em pastas protegidas. Que bom que funcionou. Maiores detalhes te respondo no pc e no privado. Abraço.
×
×
  • Create New...