2010-01-03 14 views
5

numaralı rasgele sayı uzunluğuna rastgele bir sayı üretin; her zaman Int = arc4random% MAXNUM olan bir rasgele sayı oluşturmaya çalıştığımda, sayının uzunluğu MAXNUM sayı uzunluğu -1 kadar uzun olur. Yani% 1000000 arc4random ayarlıysa, sayı 100000-999999 arasındadır. 78, 476 veya 4842 gibi farklı sayıları nasıl alabilirim? İşte örnek: Yardımlarınız içinObjective-C

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

Teşekkür ve benim kötü İngilizce için üzgünüm!

Güncelleme: Tamam sadece gördüm, sadece 5 haneli numaralar almıyorum, ama çoğu zaman. Daha az sayı ile daha az sayı veya sayı elde etmek için bir yolu var mı?

+0

tarafından, doğal çoğu 5 haneli sayı alacak yapabilirsiniz Biri rastgele tekdüze seçerek zamanın. Her bir uzunluktaki bir sayıyı döndürme olasılığınız varsa, o zaman 0-9, 10-99 vb. Aralıklarla bir rastgele sayı üretin ve sonra geri dönmek için rastgele bir seçim yapın. – Imran

+0

Yardım ettiğin için teşekkürler! – Flocked

cevap

14

Eğer xy aralığındaki rastgele bir tamsayı almak istiyorsanız, size aralıktaki sayıların en fazla 5 basamak olduğundan int randomNumber = (arc4random() % y) + x;

+0

Hm, O da çalışmıyor. Ayarladığım zaman (arc4random()% 100000) + 1; her zaman 5 rakamlı bir sayı alıyorum. Gördüğüm zaman sağ, sadece "rasgele" sayıya 1 ekleyin – Flocked

+0

Hangi platform kullanıyorsunuz? http://iphonedevelopment.blogspot.com/2008/10/random-thoughts-rand-vs-arc4random.html göre, bu olacak 0 ile 0x100000000 arasında bir dizi var.Ayrıca, sayıları * ARE * rastgele, bu yüzden sadece 5 basamaklı rakamları saf şansa vurabilirsin. – Mike

+0

Ben iPhone OS 3.2.1 ile birlikte kullanıyorum - Bu saf şans değildir , çünkü her zaman 100000 ve 5 haneli 10000, 3 ile 1000 ve 5 basamaklı 5 basamak aldığım için ... 5 basamaklı sayılar rastgele değil, uzunluktadır. – Flocked

0

arc4random() 'dan döndürülen numaranın boyutunun varsayılan değerinin 6 basamak olduğunu düşünüyorum. , 3,4,5 arc4random (4) gibi argümanlar olarak girmeyi deneyin ve sonuçları görün.

+0

Çalışmıyor. Diyor ki: "´arc4random´un işleyişi için çok fazla argüman var. – Flocked