Jump to content

bitwizardry

Membro Inativo
  • Posts

    105
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by bitwizardry

  1. Sildemar, eu desenvolvi um app que atualiza os resultados do Dia de Sorte, está disponível na área de downloads. Você testou? Funcionou na sua maquina?
  2. Version 1.0.0

    19 downloads

    Amigos, Acabei de finalizar o atualizador dos resultados do Dia de Sorte. O aplicativo foi escrito em .NET Core e necessita dos runtimes para funcionar. https://dotnet.microsoft.com/download/dotnet-core/current/runtime - Escolham a versão x86 ou x64, dependendo de qual Windows vocês estão utilizando. O procedimento é simples: 1 - Extraiam o conteúdo do arquivo .rar para qualquer pasta, ex.: C:\DiaDeSorte 2 - Executem o arquivo DiadeSorteUpdater.exe como admin, qualquer mensagem de ameaça de vírus, é mero falso alarme. 3 - Durante a execução, pressionem qualquer tecla para finalizar. O programa irá informar quantos concursos foram encontrados e os salvará no arquivo "resultados.txt", dentro da pasta do próprio programa. Testei em 3 máquinas diferentes sem problema nenhum. Qualquer bug, é só dar um toque. Segue o print da tela:
  3. Grande Guy, vou dar uma olhada para ver como ficou, depois te passo minhas impressões. Resolvi o problema da atualização do Dia de Sorte. Vou acabar de refina-lo. Depois te envio para você ver se é possível converte-lo para Delphi. Abraço!
  4. Desenvolvi uma classe em C# para facilitar a conversão e desconversão de CSNs, utilizando o BigInteger do .NET, que suporta quaisquer valores sem overflow. O uso é muito simples, para saber o CSN de uma combinação qualquer, basta chamar: var c = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; Console.WriteLine(Rankings.Rank(c).ToString()); E para saber qual é a combinação, fornecendo o CSN... var r = Rankings.UnRank(15, new BigInteger(3268760)); // é preciso fornecer o valor de "k", o "tamanho" da combinação. foreach (var item in r) { Console.Write(item + " "); } - Os CSNs estão em ordem Colex. - Tanto os CSNs quanto as combinações, devem estar indexadas em 1, dessa forma: CSN 1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ao invés de: CSN 0 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 } embora o código original seja indexado por zero: 0 <= CSN < C(n, k) Espero que seja útil. Segue o código: public class Rankings { public static BigInteger Rank(int[] c) { BigInteger r = BigInteger.Zero; int k = 1; for (int i = 0; i < c.Length; i++) { r += Binomial(c[i] - 1, k++); } return r; } public static int[] UnRank(int k, BigInteger rank) { int[] c = new int[k]; int n; int x = k; for (int i = k - 1; i >= 0; i--) { n = i; while (Binomial(n, x) <= (rank - 1)) { n++; } c[i] = n; rank -= Binomial(n - 1, x--); } return c; } private static BigInteger Binomial(int n, int k) { BigInteger r = BigInteger.One; for (int i = 1; i <= k; i++) { r *= n - (k - i); r /= i; } return r; } }
  5. Dê uma checada nesses links: Para matrizes t = m https://www.dmgordon.org/cover/ Para matrizes t <>m http://lottodesigns.altervista.org/ http://www.lotoclover.com.br/matrizes Se você não encontrar o que está procurando, aqui mesmo no fórum há vários tutoriais sobre como gera-las. A que você está procurando, é o inverso dessa: https://ljcr.dmgordon.org/show_cover.php?v=7&k=4&t=3
  6. Muito bom Weber, vou ver se consigo fecha-la abaixo das 110. Qualquer coisa, posto aqui de volta.
  7. @Weber Azevedo @Aline Marie @BigMax Consegui fechar essa 19,4,3,4 em 99.12% (34 combinações incobertas) com 105 blocos, utilizando uma variação do SA. Vejam se os senhores conseguem otimiza-la. 01 02 04 09 01 02 07 10 01 02 11 14 01 03 06 07 01 03 16 17 01 03 18 19 01 04 05 12 01 04 07 11 01 04 10 14 01 05 09 14 01 06 08 19 01 06 13 17 01 07 08 16 01 07 12 14 01 07 13 18 01 08 13 19 01 08 15 17 01 08 17 18 01 10 11 19 01 11 12 17 01 15 16 19 02 03 05 13 02 03 08 09 02 03 10 12 02 03 11 15 02 04 07 14 02 04 10 19 02 04 12 17 02 05 06 15 02 05 08 11 02 05 16 18 02 06 11 18 02 06 12 16 02 07 09 17 02 08 10 12 02 09 13 15 02 09 14 19 02 10 12 13 02 10 14 17 02 11 13 16 02 12 15 18 03 04 06 08 03 04 13 15 03 04 16 18 03 05 08 12 03 05 09 11 03 05 10 15 03 06 14 15 03 06 17 19 03 07 16 19 03 07 17 18 03 08 10 11 03 08 14 16 03 09 10 13 03 09 12 15 03 11 12 13 03 13 14 18 04 05 07 17 04 05 14 19 04 06 13 16 04 06 15 18 04 07 09 19 04 07 10 12 04 08 13 18 04 08 15 16 04 09 14 17 04 10 11 17 04 11 12 14 04 11 12 19 05 06 10 18 05 06 11 16 05 07 09 14 05 07 12 19 05 08 09 10 05 09 11 13 05 09 17 19 05 10 13 16 05 11 15 18 05 12 13 15 05 12 14 17 06 07 08 17 06 07 13 19 06 08 13 14 06 09 10 16 06 09 11 15 06 09 12 18 06 10 12 15 06 14 16 18 07 08 13 17 07 08 15 19 07 08 18 19 07 10 11 14 07 15 16 17 08 09 11 12 08 14 15 18 08 16 17 19 09 10 15 18 09 11 16 18 09 12 13 16 10 11 13 15 10 12 14 19 10 12 16 18 11 14 17 19 13 14 15 16 13 17 18 19
  8. @rockcavera Parabéns cavera! Tenho uma única sugestão, você poderia descrever as fórmulas em formato latex. Você pode cria-las a partir daqui: https://www.codecogs.com/latex/eqneditor.php A fórmula do mínimo teórico ficaria assim:
  9. Consegui resolver esse problema usando o Html Agility Pack - https://html-agility-pack.net/ Dentro da <table> do html, percorro todas as <tr> e capturo os valores de todas as <td>, via For Each, com algumas validações. Mas claro, se alterarem o layout e as tags, o código vai para o espaço... heheh
  10. Dessa forma funcionou perfeitamente.
  11. Creio que não, a versão 3.5.6 atualiza até os 1928 concursos registrados até agora, meu software pessoal tbm. Verifique o arquivo D_lotfac.zip atual.
  12. Guy, creio que há um pequeno bug na atualização dos concursos da Lotofácil, apenas 1920 concursos são computados.
  13. Apenas complementando com mais uma informação, para aqueles que ainda não sabem como calcular o mínimo teórico usando a fórmula tradicional, aqui está:
  14. Isso é o que mais existe, caro Wata. Já vi uma dúzia de gurus em loterias, com sites, canais de youtube e planilhas, que nem sabem como calcular um mínimo teórico Simplesmente surrupiam alguma matriz de um repositório desses, colocam numa planilha colorida e fazem uma simulação com todas as dezenas acertadas, mas nunca mencionam a probabilidade de acerto, e como a escolaridade brasileiro médio é baixa, em contraste com a fé, somado à ganância, vemos essa quantidade de "Joãos de Deus" lotéricos vendendo gato por lebre. Enquanto houver mané, sempre haverá um malandro.
  15. Cavera, em qual linguagem vc está desenvolvendo o aplicativo? Se for em .NET, posso dar uns pitecos sobre a implementação do paralelismo. Se sua idéia é manter o software open source, sugiro que vc crie um repositório no github ou algo parecido, é a forma mais prática de buscar cooperação.
  16. Você pode resolver o problema dos drivers com o Driver Booster, que detecta e atualiza tudo automaticamente. Depois disso, você pode "clonar" seu HD usando um software de backup. Já usei um chamado Macrium Reflect, e funcionou muito bem. Ambos os apps possuem versões freeware.
  17. A combinação que mais acertou exatamente 11 pontos, é essa: 01,02,03,04,05,10,11,13,14,17,19,20,23,24,25 - 226 vezes A combinação que mais acertou 11 pontos ou mais, é essa: 01,02,03,04,05,07,10,11,13,17,18,20,23,24,25 - 265 vezes *Atualizados até o concurso 1851
  18. Ambas completíssimas. Mais próximas aos mínimos teóricos do que essas, impossível. Para formar a C(64,40,5,5) , desdobre a C(32,20,5,5) com as dezenas de 1 a 32 e de 33 a 64, salve cada desdobramento em um arquivo diferente, depois una cada linha de cada um dos arquivos e salve num terceiro arquivo, essa será sua C(64,40,5,5) 100%
  19. Vamos lá: C(64,40,5,5) pode ser formada através da multiplicação da C(32,20,5,5) = 34 https://ljcr.dmgordon.org/show_cover.php?v=32&k=20&t=5 C(64,5,2,2) = 205 (menor quantidade de linhas possível) https://ljcr.dmgordon.org/show_cover.php?v=64&k=5&t=2
  20. C(v - k, m - t) * C(k, t) / C(v, m) Substituindo.. v = 60 k = 15 t = 6 m = 6 C(v - k, m - t) * C(k, t) / C(v, m) C(45, 0) * C(15, 6) / C(60, 6) 1 * 5005 / 50063860 = 0,0000999723153588237
  21. @abc.antonio Quando você escreveu: "Dado um arquivo com 30 linhas de 60 dezenas, faça todas as combinações possíveis de 50 dezenas em cada uma das 30 linhas" Eu só consegui entender que você queria todas as c(60,50) de cada uma das 30 linhas num arquivo único. Esclarecida a questão, creio que o Cologa realiza a tarefa que você deseja, vá em Matrizes locais/Fechamento em série. E mais um detalhe, 89 é o mínimo teórico da c(60,50,20,20), praticamente impossível de ser alcançado. Imagino que a menor matriz encontrada para esses parametros seja uma montagem de outras matrizes menores, bem maior do que 89. Ex.: c(30,25,20,20) + c(30,25,20,20) ou alguma inversão. Nosso amigo @BigMax deve saber.
  22. Do ponto de vista da programação, isso é bem simples de fazer, mas se atente para um detalhe, cada linha produzirá: c(60, 50) = 73.934.027.566 combinações Como são 30 linhas, 73.934.027.566 x 30 = 2.218.020.826.980 combinações. Horas de processamento e um arquivo final de vários GBs.
  23. Eu vejo a coisa de outra forma: quando jogamos na loteria, estamos "pagando" por uma ínfima probabilidade de sucesso, e o prêmio principal deveria ser proporcional a essa probabilidade. No caso da Lotofácil, como temos 1/3.200.00 de probabilidade a nosso favor, e se o bilhete custará R$ 2,50, só valeria a pena apostar quando o prêmio estivesse na faixa dos R$ 8.000.000 (2,5 x 3.200.00) Creio que com esse novo valor, teremos mais acumulações nessa faixa. No caso da Mega, só valeria a pena quando o prêmio estivesse na faixa dos R$ 225.000.000.
  24. Parabéns pela iniciativa amigo. Uma questão: você está usando simulated annealing no processo de otimização pós-geração?
  25. Foi o que eu imaginei, basta fazer as contas: Probabilidade do acerto de 9 pontos = 0,32154 Numero de tentativas = 10 Numero de sucessos = 3 Usando a distribuição binomial, temos 0,2639 de probabilidade desse tipo de evento ocorrer. Multiplicando 3.2MI * 0,2639 = 844.480 combinações, aproximadamente.
×
×
  • Create New...