Exercício com números randômicos - randint
Publicado por Marcelo Theodoro (última atualização em 29/06/2015)
[ Hits: 4.254 ]
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)
Versão das principais distribuições.
Script para fazer o Scroll Lock funcionar no Linux
Calculadora de area de poligonos e circulos
Nenhum comentário foi encontrado.
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
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
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
Abrir um arquivo URL pelo Clipper (8)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









