Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Vb2010] Numero Random tra numeri non consecutivi

    Salve,
    cerco di spiegare il mio problema con un esempio.
    Vorrei creare un programma che generi o un numero compreso tra 0 e 50, oppure un numero compreso tra 100 e 150, "saltando" così i valori compresi tra 51 e 99.

    Ciò che ho subito pensato è: "genero un numero random tra 0 e 150, poi lo controllo con un If e, se è compreso tra 51 e 99, ne genero un altro, finchè non sarà un numero che voglio io".
    Ma questo sarebbe troppo dispendioso per il sistema, e soprattutto sarebbe difficile da applicare se io volessi un numero random compreso tra 1 e 5 o tra 501 e 505, per esempio, quindi ho scartato questa soluzione e ho pensato:

    Faccio due If:
    il primo genera un numero compreso tra 1 e 2.
    Se esce 1, allora pesco un numero compreso tra 0 e 50.
    Se esce 2, allora pesco un numero compreso tra 100 e 150.
    Così penso che le probabilità siano rispettate.

    Voi che ne pensate? E' un metodo valido? O c'è una soluzione più semplice?

    Grazie dell'aiuto.

  2. #2
    Se i due range sono 0-50 e 100-150 (e quindi in totale sono 102 numeri diversi), potresti fare così:
    • generi un numero casuale tra 0 e 101
    • se il numero che esce è <= 50 lo tieni così com'è mentre se è >50 aggiungi 49
    Chi non cerca trova.

  3. #3
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Io ho pensato a qualcosa del genere:
    codice:
            Dim rnd As New Random
            Dim numeri(1) As Integer
            Dim risultato As Integer
    
            numeri(0) = rnd.Next(0, 50)
            numeri(1) = rnd.Next(100, 150)
            risultato = rnd.Next(0, numeri.Count)
    
            Console.WriteLine(numeri(risultato).ToString)
    Altrimenti con un ciclo puoi riempire un arraylist con i tuoi valori e usare solo la riga "risultato = ecc."
    ciao

  4. #4
    Grazie a tutti, potete chiuedere.

  5. #5
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Originariamente inviato da GenioInErba
    Grazie a tutti, potete chiuedere.
    Non so come hai risolto...ma occhio al codice che ho postato, ho commesso due volte lo stesso errore .
    ciao

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.