Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - random escudendo numeri
Forum - Visual Basic 6 - random escudendo numeri

Avatar
gaffre (Normal User)
Pro


Messaggi: 65
Iscritto: 17/06/2008

Segnala al moderatore
Postato alle 22:11
Mercoledì, 27/08/2008
Ciao a tutti!
Qual'era la formula del random per escludere alcuni numeri tra Imax e Imin?

Int((10 - 0 + 1) * Rnd) + 0

Per esempio per escudere i numeri dispari 1 3 5 7 9 tra 1 ed il 10?

Grazie

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 23:46
Mercoledì, 27/08/2008
non so come si fa...
ma potresti fare un normale random, poi vedi che numero è uscito e se il numero è dispari allora riesegui il random finchè non esce un numero pari.

PM Quote
Avatar
gaffre (Normal User)
Pro


Messaggi: 65
Iscritto: 17/06/2008

Segnala al moderatore
Postato alle 23:51
Mercoledì, 27/08/2008
scusa qual'è la funzione per vedere se è un numero paro?

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 0:50
Giovedì, 28/08/2008
potresti provare a vedere se è divisibile x 2.
Tra i sorgenti visualbasic ci dovrebbe essere un esempio, cercalo.

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 10:57
Giovedì, 28/08/2008
nel tuo caso puoi fare cheestrai un numero da 0 a 4 lo moltiplichi per 2 e ne aggiungi 1

num=int(rnd*4)*2+1

se viene generato 0 il risultato satà 1
se viene generato 4 il risultato sarà 9

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 11:27
Giovedì, 28/08/2008
ecco qui un codice di esempio:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command1_Click()
  2. Dim x As Integer
  3. Dim i As Double
  4. 1 'etichetta Goto
  5. Randomize
  6. x = Int(Rnd * 11) ' Crea un numero da 0 a 11
  7. i = x / 2 'divide il numero per due
  8. If InStr(1, i, ",") > 0 Then 'se il numero diviso per 2 contiene una virgola, quindi non è intero allora:
  9. GoTo 1 'ritorna all'etichetta 1
  10. Else 'altrimenti:
  11. Label1.Caption = x 'mette il numero originario (pari) ottenuto dall'estrazione nella label1
  12. End If
  13. End Sub


PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 12:08
Giovedì, 28/08/2008
per ottenere numeri casuali pari da uno a 10 puoi fare cosi:
Codice sorgente - presumibilmente VB.NET

  1. dim val
  2. dim i as integer
  3. val=array(2,4,6,8,10)
  4. randomize
  5. i=Int((4 - 0 + 1) * Rnd) + 0
  6. msgbox val(i)



... per sapere se un numero è pari basta fare:
Codice sorgente - presumibilmente Delphi

  1. if (num mod 2)=0then
  2. msgbox "il numero è pari"
  3. else
  4. msgbox "il numero è dispari"
  5. end if


Ultima modifica effettuata da Overflow il 28/08/2008 alle 12:11
PM Quote