Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79

    programma numeri random [VB6.0]

    ciao a tutti, avrei bisogno di qualche consiglio su come creare un programma che mi restituisca 256 numeri random nell'intervallo 1-256 entrambi compresi, senza però riscrivere uno stesso numero più di una volta.
    Grazie.
    "La fortuna aiuta gli audaci"
    (e non gli adagiati)

  2. #2
    Per estrarre un numero random esiste la funzione Rnd.
    Per funzionare correttamente bisogna impostare il generatore di numeri random con il comando Randomize timer (che estrae numeri casuali in base all'orario), altrimenti la sequenza dei numeri casuali sarebbe sempre la stessa.

    Per tenere traccia dei numeri già usciti puoi memorizzarli in un vettore, e per non complicarti la vita con un algoritmo di ricerca puoi memorizzare i numeri estratti nella relativa posizione nel vettore (indice vettore = numero estratto).

    Ecco un esempio:

    codice:
    Private Sub Command1_Click()
    Dim Estratti(256) As Integer
    Dim Numero As Integer
    Dim lowerbound As Integer
    Dim upperbound As Integer
    Dim conta As Integer
    
    'estremi sequenza di numeri
    lowerbound = 1
    upperbound = 256
    
    'azzero il vettore dei numero già estratti:
    For i = 1 To 256
        Estratti(i) = 0
    Next i
    
    Randomize Timer 'serve per generare numeri random
    
    'Estraggo il primo numero random
    Numero = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
    conta = 0
    While conta < 256
        'se il numero è nuovo non è presente
        'nella sua posizione all'interno del vettore
        If Numero <> Estratti(Numero) Then
            'lo inserisco nel vettore
            Estratti(Numero) = Numero
            'aumento il contatore
            conta = conta + 1
        End If
    
        'estraggo il numero random successivo
        Numero = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
    Wend
    
    End Sub
    Spero di essermi spiegato bene. Fammi sapere.

    Ciao
    lupusinfabula

    Programmatore VB, ASP, Delphi.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79
    Originariamente inviato da Boldan
    Per estrarre un numero random esiste la funzione Rnd.
    Per funzionare correttamente bisogna impostare il generatore di numeri random con il comando Randomize timer (che estrae numeri casuali in base all'orario), altrimenti la sequenza dei numeri casuali sarebbe sempre la stessa.

    Per tenere traccia dei numeri già usciti puoi memorizzarli in un vettore, e per non complicarti la vita con un algoritmo di ricerca puoi memorizzare i numeri estratti nella relativa posizione nel vettore (indice vettore = numero estratto).

    Ecco un esempio:

    codice:
    Private Sub Command1_Click()
    Dim Estratti(256) As Integer
    Dim Numero As Integer
    Dim lowerbound As Integer
    Dim upperbound As Integer
    Dim conta As Integer
    
    'estremi sequenza di numeri
    lowerbound = 1
    upperbound = 256
    
    'azzero il vettore dei numero già estratti:
    For i = 1 To 256
        Estratti(i) = 0
    Next i
    
    Randomize Timer 'serve per generare numeri random
    
    'Estraggo il primo numero random
    Numero = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
    conta = 0
    While conta < 256
        'se il numero è nuovo non è presente
        'nella sua posizione all'interno del vettore
        If Numero <> Estratti(Numero) Then
            'lo inserisco nel vettore
            Estratti(Numero) = Numero
            'aumento il contatore
            conta = conta + 1
        End If
    
        'estraggo il numero random successivo
        Numero = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
    Wend
    
    End Sub
    Spero di essermi spiegato bene. Fammi sapere.

    Ciao
    ti ringrazio, tutto a posto!
    "La fortuna aiuta gli audaci"
    (e non gli adagiati)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.