Exercício com números randômicos - randint

Publicado por Marcelo Theodoro (última atualização em 29/06/2015)

[ Hits: 2.111 ]

Homepage: None

Download listarand.py




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.

  



Esconder código-fonte

#!/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)

Scripts recomendados

Contador de dias em Python

Contagem

Tabela Price

Afinador de Violão/guitarra em python e gtk.

Interface para qemu


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts