Exercício com números randômicos - randint
Publicado por Marcelo Theodoro (última atualização em 29/06/2015)
[ Hits: 3.959 ]
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)
Algoritmo de Dijkstra em Python com visualização em PyGraphviz
Gerador de PIS/PASEP em Python
Organizador de Arquivos em Python + tkinter
Nenhum comentário foi encontrado.
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Resolvendo o erro "libQt6Widgets.so.6: cannot open shared object file" no Linux
Como instalar protetores de tela (Debian e derivados)
Conheça a 4Devs, caixa de ferramentas online para desenvolvedores
Como converter um vídeo MP4 para um GIF para publicar no README.md do seu repositório Github
Re: Copia e Cola no SED --> Processador de textos (2)
Driver de rede realtek 8821ce bugado (1)
Problemas de compartilhame... de impressora no Ubuntu 24.04 (3)