› Excel e gli applicativi Microsoft Office › CASUALE TRA ? e ? (Int)
-
AutoreArticoli
-
N = Sheets("valore").Range("A40")
X = Int(Rnd()) + 1
Vorrei che dia un numero casuale tra 42 e N
Ciao
l'help dice che:
To produce random integers in a given range, use this formula:
VBCopia
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)Here, upperbound is the highest number in the range, and lowerbound is the lowest number in the range.
quindi
N = Sheets("valore").Range("A40") if N>42 then X = Int((N-42+1) Rnd()+42) else X = Int((42-N+1) Rnd()+N) end ifPreciso che anche se sembra superfluo che in
X = Int((N-42+1) Rnd()+42)
c'è un segno di moltiplicazione prima di Rnd, per cui la formula è da leggersi come:
x = int((max - min + 1) * rnd + min)Ho appena provato
X = Int((N-42+1) Rnd()+42)
Non funziona!
Per il momento continuo ad utilizzare
X = Int(Rnd() * N) + 1
Correggo la domanda
Vorrei che dia un numero casuale da 42 fino N .
Tutti i numeri sotto 42 saranno ignorati.
Tutti i numeri sopra N saranno ignorati.
Utilizzando X = Int((N-42+1) Rnd()+42) - viene segnata in rosso (parantesi mancante)!
viene segnata in rosso (parantesi mancante)!
Hai ignorato completamente il mio intervento. Del resto non è che fosse così difficile 🙂
X = Int((N-42+1) Rnd()+42)
di mettere * e togliere () --- Ora provo
x = int((max - min + 1) * rnd + min)
funziona
X = Int((N - 42 + 1) * rdn + 42)
Mi sembrava una cosa teorica, è molto diversa dall'altra non l'avevo provata perché presentava troppe differenze.
Apposto!
"rnd" e non "rdn", mi raccomando 😛
Cosa sarebbe "molto teorico" ? è una formula...
Strano ma non dava errore, però ecco perché si bloccava!?! Che strano!
Adesso non si blocca più!
In questo modo non funziona per nulla mi aveva ingannato.
Praticamente in questo modo X = Int((N - 42 + 1) * rdn + 42)
mi da numeri compresi tra 42 e "97 =( 139-42)" invece volevo che generasse numeri da minimo 42 fino massimo 139=N.
Ho risolto con X = Int((N) * Rnd + 42)
Ma scusa se la formula è:
x = int((max - min + 1) * rnd + min)perchè non dovrebbe funzionare:
x = int((139 - 42 + 1) * rnd() + 42)? funziona benissimo e dà numeri tra 42 e 139.
-
AutoreArticoli
