Scelta randomica di un numero da 3 a 7

di il
6 risposte

Scelta randomica di un numero da 3 a 7

Buongiorno,
come da titolo, ho necessità che, in una formula, venga inserito randomicamente un numero da 3 a 7, compresi.

Attualmente utilizzo il seguente codice, che trovai qualche anno fa su internet, e che ho adattato con qualche prova, siccome non ne conosco effettivamente il funzionamento:
DL = Int(Rnd() * 4) + 3
(DL sta per "Delta L" ed è Long)

Il pezzo di codice in cui viene utilizzato questo Delta, è molto semplice:
    
    Do Until cont = 6
        DL = Int(Rnd() * 4) + 3
        Range("E" & riga) = Range("F39") / 10 * DL
        riga = riga + 1
        cont = cont + 1
    Loop
Per funzionare, funziona.
Il mio problema è che esegue un numero predefinito di schemi SEMPRE UGUALI.

Per capirci, facendo girare la macro mi sono accorda che dopo 5-6 volte che la faccio girare, torna allo schema di "numeri random" della prima volta.
Quindi non sono propriamente random.

Se ho 20 fogli di calcolo e su ognuno faccio girare la macro, ne capiteranno sicuramente alcuni con lo stesso identico schema di "numeri random."

Sto utilizzando male la funzione Int(Rnd()), oppure per quello che devo fare io c'è una funzione più adatta?

P.S.: usate termini semplici perché non sono espertissima

6 Risposte

  • Re: Scelta randomica di un numero da 3 a 7

    Ciao
    Intanto prova a vedere nella Guida l'istruzione Randomize

    Ciao,
    Mario
  • Re: Scelta randomica di un numero da 3 a 7

    Dove trovo questa guida?
  • Re: Scelta randomica di un numero da 3 a 7

    Prima del ciclo scrivi

    Randomize Timer

    P.S. Per la guida, non hai mai visto in Excel in alto a destra un punto interrogativo ?
  • Re: Scelta randomica di un numero da 3 a 7

    Cominciamo con un ragionamento SPICCIOLO: hai SOLO 5 numeri diversi che possono essere mescolati in 5!=120 modi diversi.
    Tu usi sequenze di 6 elementi, quindi puoi usare AL PIU' 20 volte queste sequenze, DOPO di che si ripetono NECCESSARIAMENTE.
    Il fatto che trovi doppioni PRIMA e semplicemente legato al fatto che il generatore di numeri casuali NON E' perfettissimo (e NESSUNO lo e', anche se ci sono generatori PIU' BUONI).

    Puoi tentare di inizializzare il generatore di numeri casuali, ma questo MITIGA ma non risolve il problema.

    Fondamentalmente, NON CI PUOI FARE NULLA.
  • Re: Scelta randomica di un numero da 3 a 7

    Oltre alle osservazioni corrette degli altri, ma il 7 esce mai in quella formula? Non deve moltiplicare Rnd() per 5?
  • Re: Scelta randomica di un numero da 3 a 7

    Weierstrass ha scritto:


    Oltre alle osservazioni corrette degli altri, ma il 7 esce mai in quella formula? Non deve moltiplicare Rnd() per 5?
    Santo cielo, hai ragione, non ci avevo mai fatto caso! D:
    Ti ringrazio.

    migliorabile ha scritto:


    Cominciamo con un ragionamento SPICCIOLO: hai SOLO 5 numeri diversi che possono essere mescolati in 5!=120 modi diversi.
    Tu usi sequenze di 6 elementi, quindi puoi usare AL PIU' 20 volte queste sequenze, DOPO di che si ripetono NECCESSARIAMENTE.
    Il fatto che trovi doppioni PRIMA e semplicemente legato al fatto che il generatore di numeri casuali NON E' perfettissimo (e NESSUNO lo e', anche se ci sono generatori PIU' BUONI).

    Puoi tentare di inizializzare il generatore di numeri casuali, ma questo MITIGA ma non risolve il problema.

    Fondamentalmente, NON CI PUOI FARE NULLA.
    Ho tre tabelle nel foglio, da compilare con quella formula, e il punto è che si ripetono ciclicamente gli stessi schemi su TUTTE LE TABELLE.

    Se ho questo schema:

    Tabella 1:
    7
    5
    6
    3
    5
    4


    Tabella 2:
    4
    3
    5
    6
    7

    Tabella 3:
    6
    5
    4
    7
    3
    4
    5
    7
    3
    5

    Tanto per fare un esempio con numeri a caso, dopo qualche volta che faccio girare la macro, si ripete lo stesso identico schema su tutte le tabelle.
    Quello che dico, è che ci sono effettivamente tantissime possibili combinazioni, che non dovrei essere in grado di osservare così facilmente.
    E invece succede.
    Mi capita spesso e volentieri di dover cambiare i valori a mano, perché alcuni file sono assolutamente identici.
    Aggiungo che se salvo un file dopo l'esecuzione della macro e lo utilizzo come base per i successivi e faccio girare la macro solo una volta, avrò lo stesso identico schema su tutti e tre i file.
    Se la faccio girare un'altra volta su tutti e 3, saranno nuovamente tutti identici.

    Comunque, cosa intendi con "inizializzare"?
    Se me lo spieghi, provo a dargli una sistemata sommaria.

    Non pretendo che faccia millantamila combinazioni, ma che se ho 100 file non ne vengano 20 uguali, ecco.

    oregon ha scritto:


    Prima del ciclo scrivi

    Randomize Timer

    P.S. Per la guida, non hai mai visto in Excel in alto a destra un punto interrogativo ?
    Non avevo capito che il riferimento fosse alla guida di Excel.

    Comunque adesso provo questo "Randomize Timer" prima dei cicli, grazie.
Devi accedere o registrarti per scrivere nel forum
6 risposte