ios中三種隨機算法(0到10中隨機取一個數(shù)字不包括5)
?? //第一種
srand((unsigned)time(0)); //不加這句每次產(chǎn)生的隨機數(shù)不變?
? int k = rand() % 10;
? ? //第二種
? ? srandom(time(0));
? ? int j = random() % 10;
? ? //第三種
? ? int w = arc4random() % 10 ;
//不從0開始取值的做法莱衩,三種方法原理一樣
//獲取一個隨機數(shù)范圍在:[50,100),包括50,不包括100
? int y = (arc4random() % 50) + 50;
概率算法:
現(xiàn)在有一個數(shù)組:
NSArray *arr = [NSArray arrayWithObjects:@"aa",@"bb",@"cc",@"dd",@"ee", nil];我要從這個數(shù)組中隨機取出一個字符贞绳,但是我要求取到aa的概率是50%谷醉,cc20%,其他的都是10%冈闭;這里我們還是采用隨機數(shù)來實現(xiàn)俱尼,取0-100的隨機數(shù),然后分成一個個你的小區(qū)間萎攒,0-49遇八,50-59,60-79耍休,80-89刃永,90-99,廢話不多說直接上代碼:
NSArray *arr = [NSArray arrayWithObjects:@"aa",@"bb",@"cc",@"dd",@"ee", nil];
? ? NSInteger dd=0;//用來統(tǒng)計dd出現(xiàn)的次數(shù)(我的結(jié)果為47次)
? ? for (NSInteger i=0; i<100; i++) {
? ? ? ? int index = arc4random() % 100;
? ? ? ? if (index<50) {
? ? ? ? ? ? index = 0;
? ? ? ? ? ? dd++;
? ? ? ? }else if (index>=50&&index<60){
? ? ? ? ? ? index = 1;
? ? ? ? }else if (index>=60&&index<80){
? ? ? ? ? ? index = 2;
? ? ? ? }else if (index>=80&&index<90){
? ? ? ? ? ? index = 3;
? ? ? ? }else if (index>=90){
? ? ? ? ? ? index = 4;
? ? ? ? }
? ? ? ? NSString *str = arr[index];
? ? ? ? NSLog(@"%@",str);
? ? }
? ? NSLog(@"dd出現(xiàn)了%ld次",dd);
以上為自己總結(jié),如有不當(dāng)之處還請指正