2010-01-03 19 views
5

sempre quando provo a generare un numero casuale con Int = arc4random% MAXNUM la lunghezza del numero è lunga quanto il numero MAXNUM di lunghezza -1. Quindi se imposto arc4random% 1000000 il numero è compreso tra 100000-999999. Come posso ottenere numeri diversi come 78, 476 o 4842? Ecco un esempio:Genera un numero casuale con un numero casuale in Objective-C

int number = arc4random() % 1000000; 
outputLabel.text = [NSString stringWithFormat:@"The Number is %d", number]; 

Grazie per il vostro aiuto e dispiaciuto per il mio cattivo inglese!

Aggiornamento: Okay, ho appena visto che non ottengo solo numeri a 5 cifre, ma il più delle volte. C'è un modo per ottenere più spesso numeri o numeri inferiori con meno cifre?

+0

Dal momento che la maggior parte dei numeri nella vostra gamma sono 5 cifre, sarà naturalmente ottiene un numero a 5 cifre più del tempo scegliendone uno in modo uniforme a caso. Se si desidera una uguale probabilità di restituire un numero con ciascuna lunghezza, generare un numero casuale in ogni intervallo 0-9, 10-99, ecc. E quindi scegliere un valore casuale per tornare. – Imran

+0

Grazie che ha aiutato! – Flocked

risposta

14

Se si desidera ottenere un numero intero casuale nella gamma x-y, è possibile farlo da int randomNumber = (arc4random() % y) + x;

+0

Hm, non funziona anche. Quando ho impostato (arc4random()% 100000) + 1, ottengo sempre un numero con 5 cifre Quando lo vedo giusto, basta aggiungere 1 al numero "casuale" – Flocked

+0

Che piattaforma stai usando? Secondo http://iphonedevelopment.blogspot.com/2008/10/random-thoughts-rand-vs-arc4random.html, questo sarà avere un intervallo compreso tra 0 e 0x100000000. Inoltre, i numeri * SONO * casuali, quindi potresti semplicemente colpire i numeri con 5 cifre per puro caso. – Mike

+0

Lo uso con l'iPhone OS 3.2.1 - Non è un puro caso , perché ottengo sempre 5 cifre con 100000 e 4 cifre con 10000, 3 con 1000 e così via ... I numeri a 5 cifre sono casuali ma non la lunghezza – Flocked

0

Penso che il valore predefinito della dimensione del numero restituito da arc4random() sia di 6 cifre. prova a inserire 3,4,5 come argomenti come arc4random (4) e guarda i risultati.

+0

Non funziona. Dice: "Troppi argomenti per funzionare'arc4random' – Flocked

Problemi correlati