1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Sortear numeros a partir de uma lista

Discussão em 'Programação' iniciada por saurio33, 7 de Dezembro de 2007. (Respostas: 4; Visualizações: 7919)

  1. saurio33

    saurio33 Power Member

    Boas,
    Agradeço toda a ajuda que possam prestar.
    O problema é o seguinte: Necessito de sortear cerca de 20 numeros de um universo de cerca 300 numeros, não necessariamente sequenciais (mas em ultimo caso posso criar um indice sequencial para esses numeros) e não repetidos. É uma versão informatica dos tradicionais sacos com os papelinhos numerados.
    Qual a forma mais simples de fazer isto? Excel, visual basic, php, etc?
    Já estou há uns anos largos sem mexer em programação e dava-me jeito resolver isto sem investir muito tempo.

    Cumprimentos
    J. Pedro
     
  2. Armadillo

    Armadillo Folding Member

    VB6
    So tens q depois fazer a verificacao se ta a repetir algum valor

    Código:
    Option Explicit
    
    Private Sub Command1_Click()
    Dim i As Integer
    Randomize
    For i = 0 To 19
        Me.Text1 = Me.Text1 & Int((300 - 0 + 1) * Rnd + 0) & ";"
    Next i
    
    End Sub
    
    
     
  3. CrazyBomber

    CrazyBomber Power Member

    Acho que em PHP é mais fácil:

    PHP:
    //A nossa lista com os tais 300 numeros
    $lista = array( 13121412312341241921238328953461233251232112312123315433452344231233211322134324123213134321232131342332545262534123459532893745309459845323875872323765 ); //etc etc

    //Baralhar tudo - o factor aleatório :)
    shuffle$lista );

    //Guardar os seleccionados num array, que tem os primeiros 20 elementos do "grande"
    $sorteados array_splice$lista020 );

    //Sort do menor para o maior
    sort$sorteados );

    //Imprimir tudo por ordem
    foreach( $sorteados AS $valor )
        echo 
    $valor ", ";
    Resultado:
    :)
     
    Última edição: 7 de Dezembro de 2007
  4. saurio33

    saurio33 Power Member

    Agradeço a ajuda. Amanhã vou testar as soluções apresentadas. :)
    Um abraço
    J. Pedro
     
  5. mj2p

    mj2p I'm Cool Cuz I Fold

    Eu uma vez fiz isso em MatLab para sortear os números do EuroMilhões.

    Para não te prender a nenhum tipo de linguagem, deixo-te em português estruturado a maneira de fazer este programa:


    Preencher array (vamos enverdar por ordem sequencial) com os numeros possíveis.
    Cada vez que se coloca um novo numero, verificar se existe:
    Se existe--> sortear um novo numero
    Se não existe--> colocar no array e avançar
    Depois de preencher o array, sortear um numero que será um índice do array do array.
    Indicar o numero que está nesse índice.
    Retirar esse número do array (pode-se colocar zero no indice do n.º anterior ou fazer a ordenação do array).
    Proceder ao sorteio de quantos mais numeros se quiser.

    FIM

    Acho que te consigo dar uma boa ideia de como fazer este programa.

    Vá, cumps
     

Partilhar esta Página