« Django rodando em JythonBlog Day 2007 »

Code Contest: Mega-Sena Acumulada

01/09/2007

Link: http://macacochefe.blogspot.com/2007/08/code-contest-em-tempos-de-mega-sena.html

Em resposta do desafio do Rodrigo Sol, que eu li no blog do José Oliveira e no blog do Daniel Martins, que consiste em rodar 100000 jogadas de números aleatórios de 1 a 60 e ver quais os que saíram mais.


from random import randrange
from itertools import groupby
from operator import itemgetter
x = [item for item in sorted([(k, len(list(g))) for k, g in groupby(sorted([randrange(1,61) for item in xrange(0,100000)]))],key=itemgetter(1),reverse=True)][:6]
print(x)
 

O código ficou comprido, mas eu achei razoavelmente fácil de ler (bom, fui eu quem escreveu, sou suspeito). Algumas coisas legais do python: o randrange (gerar números aleatórios numa range. Existe também o randint para esse fim, com a diferença que o randint inclui o último número e o randrange pára um número antes do fim do range. Além disso, o randrange me pareceu um pouquinho mais rápido). O groupby parece coisa de banco de dados, e é mesmo uma pitada de álgebra relacional aplicada aqui.

Aliás, essa não é a primeira vez que eu faço algum código relacionado à mega-sena: usando Python mesmo, e a planilha de resultados que se pode obter no site da caixa, eu verifiquei quais os números que tinham saído mais vezes. Até a última vez que eu verifiquei, o número mais comum era o 42.

Por falar em groupby e no módulo itertools, no Python Cookbook existe uma implementação dos algoritmos de junção de banco de dados usando esses carinhas. Se você gostar de banco de dados como eu, vale a pena conferir.


Email por Walter Cruz em Python
Tags: , ,

Endereço de trackback para este post

Trackback URL (clique direito e copie atalho/localização do link)

5 comentários, 2 trackbacks

Comentário de: Helen [Visitante] Email · http://helencarol.wordpress.com
Enfim , vc sabe q num entendo nda disso , mas esses dias em meio a um surto de desespero e esperança de resolver a vida (no que diz respeito a dinheiro) rápido eu joguei na mega o único numero q acertei foi o 42, rs. bjks
01/09/2007 @ 13:34
Comentário de: Bernardo Rufino [Visitante] Email · http://bermonruf.wordpress.com
Vai que nesses códigos sai um ganhador... hehehe
Estudar python está na minha lista de coisas a fazer já.
02/09/2007 @ 11:22
Trackback de: Blog do Urubatan [Visitante]
Usando Ruby para ficar Rico!
Com a Mega Sena acumulada neste fim de semana resolvemos fazer um “bolão” para ver se saia pelo menos uma quadra pra pagar um churrasco
Só vamos ficar sabendo do resultado na segunda pela manha pois os bilhetes estão em uma gaveta no es...
02/09/2007 @ 17:11
Comentário de: Claudio Torcato [Visitante] Email · http://claudiotorcato.wordpress.com
Rapaz, se eu não estou enganado, 42 é a resposta para a Pergunta Fundamental da Vida, do Universo e Tudo Mais (http://pt.wikipedia.org/wiki/The_Hitchhiker's_Guide_to_the_Galaxy).
03/09/2007 @ 14:18
Comentário de: Urubatan [Visitante] Email · http://www.urubatan.com.br
Sim, 42 é a resposta para a vida o universo e tudo mais :D
só falta descobrir qual é a pergunta (tudo a ver com o tópico :D )
03/09/2007 @ 17:06
Trackback de: Blog do Urubatan [Visitante]
Code Contest: Mega-Sena Acumulada
Ja que o Walter Cruz disse que o outro código que eu postei não tinha nada a ver com o contest (na verdade não tinha mesmo).
Segue o meu código para participar do Code Contest do Rodrigo Sol, que consiste em gerar 1000 jogadas para a mega sena que ...
06/09/2007 @ 23:06
Comentário de: LAURA [Visitante]
*----
170297
18/04/2009 @ 15:56

Deixe seu comentário


Seu endereço de e-mail não será revelado nesse site.

Sua URL será exibida.
PobreExcelente
(Quebras de linha se tornam <br />)
(Nome, e-mail & website)
(Permitir que usuários o contatem através de um formulário eletrônico (seu e-mail não será exibido.))
Subscribe to comments by email

You can just use your OpenID to provide your name, e-mail and url.