Como gerar um número aleatório entre 1 – 7 com apenas um dado


Melhor resposta

Nossa … como um nerd de D&D e engenheiro de software, eu acho TAL divertido pergunta

Se, por entre, você quer dizer 2-6, role novamente um dado de 6 sixed, e role novamente 1 … mas isso é chato, não é?

Se, entre, você quer dizer 1–7, você pode

  • A opção D&D: – exigindo um dado atípico rolar um dado de 8 lados, e rolar novamente qualquer 8.
  • A opção XKCD: – a distribuição desigual 4 (conforme determinado pelo lançamento justo do dado) ( qualquer número aleatório entre 1–6 também está entre 1–7)
  • O sistema de camarada 6 amigos dão a você um número e você joga um dado para decidir qual número de camarada usará
  • A solução normal e enfadonha – exigindo vários dierolls pares, rolar o dado duas vezes, criando 36 combinações; usando combinação 7×5 para determinar um número e 1 combinação para rolar novamente
  • Se o segundo dado não for 6, então use o primeiro dado. (11-15) → 1 … (61-65) → 6
  • se o segundo dado for 6, use 7, a menos que o primeiro dado também seja 6 (16,26,36,46,56) → 7
  • se o resultado for 66, reinicie.
  • Dados duplos, estimativa de distribuição igual. some o valor de dois rolos com o dado 7 → 7 (6/36) 6 → 6 (5/36) 5 ou 2 → 5 (5/36) 4 ou 3 → 4 (5/36) 8 → 3 (5 / 36) 9 ou 12 → 2 (5/36) 10 ou 11 → 1 (5/36)
  • Dado único, distribuição igual, exceto os extremos alternam entre rolar {1–6} e {1–6 } +1. Os números 2 a 6 terão cada um uma chance igual, mas 1 e 7 terão apenas a metade.
  • Um único dado, sem repetições. Comece com um único dado, o próximo lançamento de dados irá pular o valor anterior.
  • Suponha que você tenha obtido um 6 primeiro
  • Então você rola um 3. Você pega o terceiro número, pulando o 6 se necessário (o que você não faz), então você obtém um 3
  • Então você tira um 4. Você pega o 4º número, pulando o 3 se necessário, o que você faz), então agora você obtém um 5
  • outra opção: a lista embaralhada (7 rolos de dados e um pedaço de papel)
  • anote os números 1–7
  • para cada rolo de número a morrer, e trocar esse número pelo outro número (habilitando o seu). Por exemplo
  • * 1 * 2 3 4 5 6 7. Jogue um dado (é um 2), o segundo número, pulando * 1 *, é 3 3 2 1 4 5 6 7
  • 3 * 2 * 1 4 5 6 7 Jogue um dado (é um 1), o primeiro número (pulando * 2 *, mas não passamos), é 3 2 3 1 4 5 6 7
  • 2 * 3 * 1 4 5 6 7 Lance um dado (é um 6), o sexto número, pulando * 3 *, é 7 2 7 1 4 5 6 3
  • Você sabe que tem uma lista embaralhada. Você pode decidir
  • usar apenas o primeiro número
  • usar todos os números incrementando com 1 (na verdade, esta é uma das minhas coisas favoritas a fazer quando preciso de uma jogada de dados, mas não não quero sofrer extremos; faço uma lista aleatória de números e os marco, 1 por 1)
  • uso todos os números, incrementando com um lançamento de dados, e reinicio do início ou faço um segundo lista se você chegar ao fim

Resposta

Estou assumindo que você precisa de uma uniformemente distribuída número entre 1 e 7 inclusive. Você precisa dizer isso, uma vez que “aleatório” também pode ser distribuído de muitas outras maneiras.

Se o seu protocolo se limitar a rolar o dado n vezes, ele terá 6 ^ n resultados possíveis uniformemente distribuídos. Mas 6 ^ n nunca é divisível por 7, então não há como particionar esse espaço em sete partes de tamanho igual.

Portanto, qualquer método correto para conseguir isso deve permitir um número ilimitado de rolos de morrer. Isso não é tão ruim, já que podemos tornar extremamente improvável que você precise de mais de dez testes, e ainda mais improvável que você precise de mais de cem: podemos aumentar as chances de precisar de muitos testes realmente, realmente pequeno. Mas não podemos garantir que você fará em mil lançamentos, pelo motivo que mencionei.

Um protocolo simples é este: jogue o dado duas vezes.

  • Tem seis-seis? Vadio. Tente novamente.
  • Tem seis-qualquer-mais? Chame isso de 7.
  • Caso contrário, chame de qualquer coisa que o segundo lançamento diga.

Existem cinco maneiras de obter cada um dos sete resultados, cobrindo 35 dos 36 possibilidades. Um resultado, um duplo seis, força uma repetição – essa é a saída de que precisamos para permitir uma sequência de jogadas possivelmente arbitrariamente longa. Claro, a probabilidade de você obter um duplo seis dez vezes seguidas é insignificante, quanto mais algo mais longo do que isso.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *