Ios NSArray中指标权重的选择
给定一个对象的NSArray数组,例如[NSArray array WITH objects:A、B、C、D、E、nil],我可以使用for循环和arc4random函数(例如Ios NSArray中指标权重的选择,ios,random,nsarray,probability,Ios,Random,Nsarray,Probability,给定一个对象的NSArray数组,例如[NSArray array WITH objects:A、B、C、D、E、nil],我可以使用for循环和arc4random函数(例如 NSArray *objArray = [NSArray arrayWithObjects:A, B, C, D, E, nil]; NSMutableArray *newArray = [NSMutableArray alloc] init]; for(int i=0;i<N;i++){ id randI
NSArray *objArray = [NSArray arrayWithObjects:A, B, C, D, E, nil];
NSMutableArray *newArray = [NSMutableArray alloc] init];
for(int i=0;i<N;i++){
id randIndex = arc4random() % N;
[newArray addObject:[objArray objectAtIndex:randIndex];
}
因此,上述权重将导致有更多的对象A,而没有对象E。谢谢。对于一般情况,可能重复的请看这里。如果您将发生概率作为权重,a=1的概率是多少。这表示将始终选择一个。所有元素的概率之和应为1。
NSArray *weights = [NSArray arrayWithObjects:@1, @0.5, @1, @1, @1]; would mean:
A - 1
B - 0.5 // 0.5 times as likely to appear
C - 0.3 // 0.3 times as likely to appear
D - 0.1 // 0.1x times as likely to appear
E - 0 // Will never appear