Exercício com números randômicos - randint
Publicado por Marcelo Theodoro (última atualização em 29/06/2015)
[ Hits: 4.256 ]
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)
Sugestão aleatória de filmes e séries para assistir por streaming
Calcular aproximação de raiz quadrada
Script para fazer o Scroll Lock funcionar no Linux
Nenhum comentário foi encontrado.
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
O que significa essa expressão? (3)
o que é esta mensagem? relatorios do sistema (8)
como usar o caja como cliente FTP no linux mint? (2)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (3)









