Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

O grande sorteio

Para aqueles como eu, achava que o sorteio foi justo, na verdade ele foi injusto.

Basta voltar na aula 03 Definindo um intervalo para a geração de números aleatórios e assistir o vídeo novamente a partir dos 04:30 minutos.

No exemplo mostrado, fica claro que para você conseguir obter os números 1,2 ou 3, o correto no sorteio seria colocar o seguinte código:

import random

sorteado = random.randrange(1,4)
print(sorteado)

if sorteado == 1:
    print( "Paulo")
elif sorteado == 2:
    print("Juliana")
else:
    print("Tamires")

Alterei apenas o 0 pelo número 1 abaixo

sorteado = random.randrange(1,4)

Logo se deixarmos o valor 0,4 apenas na linha de código: sorteado = random.randrange(0,4) O número 0 também será incluído no sorteio.

Então o sorteio será injusto, afinal os possíveis números retornados são 0, 1, 2 e 3 , e como o Paulo e a Juliana estão associadas a apenas um número cada sobram ainda outros dois números (0 e 3) para Tamires poder ganhar.

Veja o exemplo da documentação:

>>> randrange(0, 101)  #Even integer from 0 to 100 inclusive
26

Espero ter ajudado!

2 respostas

Olá Thiago.

Exatamente, você explicou certinho. E parabéns por recorrer a documentação para se informar, na minha opinião é o melhor caminho, para fazer consultas e entender melhor o funcionamento de bibliotecas.

Outro ponto de atenção quando utilizar o randrange é o parâmetro de stop que não é inclusivo, então por exemplo:

sorteado = random.randrange(1,4)

Nessa caso o 4 nunca vai ser sorteado, o intervalo será somente [1,2,3].

>>> randrange(0, 101)  #Even integer from 0 to 100 inclusive

Nesse outro exemplo também, o 101 não está no intervalo de números que podem ser sorteados.

Uma função alternativa que não tem essa questão é a randint onde o segundo parâmetro é inclusivo, então por exemplo:

sorteado = random.randint(1,4)

Nesse caso o intervalo será de [1,2,3,4] diferente do nosso outro exemplo, porque agora o 4 é um dos números que podem ser sorteado.

Na documentação vemos a seguinte comparação:

random.randint(a,b)
random.randrange(a, b+1)

Onde esses duas linhas são equivalentes, podem ver isso com mais detalhes na documentação.

Novamente parabéns e bons estudos.

solução!

Legal, Igor.

Curti esse exemplo:

random.randint(a,b)
random.randrange(a, b+1)