Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pensante

Como criar um for para sortear numeros aleatorios de 1 ate 17

Recommended Posts

quero desenvolver em algoritmo 1º, para entender melhor e logico aprender, depois vou passar para php!!!

 

 

Meu problema é que quero fazer um programa em algoritmo de um vetor q va ate 17 e gere numeros aleatorios e jogue no vetorB (só q os numeros do vetor é > 0 e <=17)

eu gostaria de saber como se faz um sorteio aleatorio dentro de um para?

ñ tenho ideia!!

pesquisei mas o q achei foi sobre rand, mas como isto acontece, ele é só para numeros reais, eu quero numeros inteiros.

 

eu achei uma linha de codigo assim:

num <- rand * 20

 

o q realmente esta linha tah fazendo?!

como eu faço um sorteio aleatório passo a passo?

 

Obrigada pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Pensante,

 

Não vai ser difícil você fazer esse aplicativo do sorteio, veja só.

 

Na verdade a função rand() retorna um valor inteiro e não um valor real como você está imaginando. E mais, você pode informar a faixa de números que ela deverá utilizar para gerar o número aleatório. Por exemplo:

 

$numero = rand(1,17);

 

A chamada acima vai atribuir a variável $numero um valor inteiro aleatório entre 1 e 17.

 

Recomendo que você leia a documentação completa da função rand no manual do PHP, vou te passar o link abaixo.

 

http://www.php.net/manual/pt_BR/function.rand.php

 

Sobre o algoritmo que você pretende fazer, vou colocar em PHP com comentários, depois você transcreve para

algoritmo, vai ser bom até para você fixar a lógica da coisa.

 


<?php

$qtd_de_bolas = 17; // Pelo que entendi, o sorteio será de 17 bolas, peguei a analogia do bingo

// O 'for' abaixo vai gravar no vetor $numeros_sorteados os números sorteados
// O vetor vai começar na posição 0 e vai até a posição 16, ou seja, 17 posições

for ($contador = 0; $contador < $qtd_de_bolas; $contador ++)
    $numeros_sorteados[$contador] = rand(1,17);

// A exibição poderia estar no 'for' acima, mas para fins didáticos vou colocar outro 'for' para ficar mais
// claro que ficou gravado no vetor

for ($contador = 0; $contador < $qtd_de_bolas; $contador ++)
    print("Bola ". $contador.": ". $numeros_sorteados[$contador]."<br />");

?>

No seu post você não informou se um número pode ser sorteado mais de uma vez, então no código acima o aplicativo não está fazendo esse teste, portanto podem haver números repetidos. Se for necessário, você vai ter que fazer um teste com if antes de gravar.

 

Espero ter ajudado, um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

int mt_rand().

 

No seu post você não informou se um número pode ser sorteado mais de uma vez, então no código acima o aplicativo não está fazendo esse teste, portanto podem haver números repetidos. Se for necessário, você vai ter que fazer um teste com if antes de gravar.

Não precisa. Se você souber da teoria, seja da FIFO ou LIFO, você implementa um array contendo os números, mistura utilizando shuffle(), e depois retira cada um utilizando array_shift(). :).

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu post você não informou se um número pode ser sorteado mais de uma vez, então no código acima o aplicativo não está fazendo esse teste, portanto podem haver números repetidos. Se for necessário, você vai ter que fazer um teste com if antes de gravar.

Não precisa. Se você souber da teoria, seja da FIFO ou LIFO, você implementa um array contendo os números, mistura utilizando shuffle(), e depois retira cada um utilizando array_shift(). :).

 

É, se você já tiver os conceitos de estrutura de dados também pode utilizar a lógica que o André falou, senão use o que você conhece mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.