Visualizzazione dei risultati da 1 a 8 su 8

Discussione: vb6 - random

  1. #1
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

    vb6 - random

    Sicuramente è stato detto 1000000000000000000000 volte, ma io non ho trovato nulla per quello che serve a me. Devo creare un numero TOTALMENTE CASUALE da 0 a 99. La funzione rnd mi crea numeri con la virgola e randomize non ho capito ancora come si usa. Chi mi sa aiutare?

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    MSDN:
    Per generare interi casuali in un dato intervallo, utilizzare la seguente formula:

    Int((limitesup - limiteinf + 1) * Rnd + limiteinf)

    In questo contesto, limitesup indica il numero maggiore presente nell'intervallo, mentre limiteinf indica il numero minore.

    Nota:Per ripetere sequenze di numeri casuali, richiamare Rnd con un argomento negativo immediatamente prima dell'utilizzo di Randomize con un argomento numerico. L'utilizzo di Randomize con lo stesso valore di numero non determinerà la ripetizione della sequenza precedente
    codice:
    Const LimiteSup = 99
    Const LimiteInf = 0
    Dim Num1 As Byte
    
    Randomize Timer
    Num1 = Int((LimiteSup - LimiteInf + 1) * Rnd + LimiteInf)
    MsgBox CStr(Num1)
    ... e non usare while wend è una sintassi deprecata

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    aggiungerei che è inutile sommare alla finer il limite inferiore almeno in questo caso visto che è 0!

    quindi

    codice:
    Num1 = Int((LimiteSup  + 1) * Rnd )
    ovviamente solo in questo caso
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    gia risposto vedo

  5. #5
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Originariamente inviato da ciro78
    ovviamente solo in questo caso
    giusta segnalazione
    ... e non usare while wend è una sintassi deprecata

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    205
    domanda forse stupida!
    mi chiedo perchè aggiungere +1 al LimiteSup!
    basterebbe anche solo:
    codice:
    Num1 = Int((LimiteSup) * Rnd )
    o sbaglio? non fà una piega questo codice e mi chiedevo appunto questa cosa.
    grazie!

    Originariamente inviato da ciro78
    aggiungerei che è inutile sommare alla finer il limite inferiore almeno in questo caso visto che è 0!

    quindi

    codice:
    Num1 = Int((LimiteSup  + 1) * Rnd )
    ovviamente solo in questo caso

  7. #7
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    rnd è un numero inferiore ad 1 di conseguenza quando moltiplichi il limite superiore per rnd non otterrai mai il limite superiore ma sempre un numro inferiore, aggiungendo 1 ottieni anche l'estremno superiore.
    spero di essere stato chiaro
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    205
    effettivamente a pensarci bene è vero! graSSie

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.