Exercício com números randômicos - randint
Publicado por Marcelo Theodoro (última atualização em 29/06/2015)
[ Hits: 4.270 ]
Homepage: None
O script abaixo gera uma lista de números sequencial. A quantidade desses números é setada na variável MAX. Por exemplo, se você colocar o número 10, em MAX, a lista gerada será: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
A partir da lista gerada, ele começa a gerar randomicamente números entre 1 e MAX(no caso, 10). Se o número gerado for igual ao primeiro item da lista (no caso, 1), ele remove o primeiro item. Nesse caso, a lista ficaria como:
[2, 3, 4, 5, 6, 7, 8, 9, 10]
E repete o processo até que não tenha mais nenhum item na lista.
Ao final, ele exibe quantas tentativas foram necessárias para gerar sequencialmente os itens da lista.
Com MAX igual a 10, nos meus testes, já aconteceu de serem necessárias desde 900.000.000 tentativas, até 11.000.000.000. Com números menores, como 5, costuma ir bem mais rápido.
Enfim... só uma brincadeira, nada verdadeiramente útil.
#!/usr/bin/python
#coding: utf-8
# Marcelo Theodoro, marcelotheodoro@outlook.com
from random import randint
MAX = 5 # tamanho da lista. ex, 5: [1, 2, 3, 4, 5]
lista = range(1, MAX+1) # Cria primeiro número randomico
tentativas = 0
while lista: # Enquanto houver um número da lista
tentativas += 1 # Soma + 1 a variável tentativas
numero = randint(1, MAX) # Gera o número randomico
if numero == lista[0]: # Se o número randomico da vez for igual ao primeiro item da lista
lista.remove(lista[0]) # Remove se o número randomico for o primeiro da lista
else:
lista = range(1, MAX+1) # Se não for o primeiro da lista, a lista volta a forma original
print 'O número de tentativas necessárias foi: {0}'.format(tentativas)
Just Do It - XML Generic Editor
Unescape de caracteres especiais ISO-8859-1
Nenhum comentário foi encontrado.
A produção de áudio e vídeo no Linux e as distribuições dedicadas a esse fim
Criptografando sua Home com Gocryptfs para tristeza do meliante
A Involução do Linux e as Lambanças Desnecessárias desde o seu Lançamento
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Zen Kernel no Arch Linux (instalar e remover)
Como instalar e remover o kernel Liquorix
Fazendo o controle de Xbox 360 USB funcionar no One Piece Pirate Warriors 4 (Arch Linux/Steam)
GLPI Cards de filtros de pesquisa (0)
Enquete: qual bloco de código C++ é mais legível? (3)









