0

我试图弄清楚如何将一组用户中的一对用户呈现给current_user应用程序,而不是current_user再次看到同一对用户。从数学上讲,我知道这是 a n choose 2,其中 n 是用户数组的大小。但是,我不确定如何设置数据结构,以便它可以随机地将所有对的组合呈现给current_user. 谢谢!

4

1 回答 1

1

我会创建一个由两个用户的 id 组成的类。

@interface userPair: NSObject

 @property (nonatomic, assign) NSInteger user1id;
 @property (nonatomic, assign) NSInteger user2id;

@end

我只需创建一个包含所有可能对的 NSMutableArray,然后运行这个很棒的 shuffle 方法:(取自这个答案

- (void)shuffle
{
    NSUInteger count = [self count];
    for (NSUInteger i = 0; i < count; ++i) {
        // Select a random element between i and end of array to swap with.
        NSInteger nElements = count - i;
        NSInteger n = (arc4random() % nElements) + i;
        [self exchangeObjectAtIndex:i withObjectAtIndex:n];
    }
}
于 2013-08-23T04:14:43.727 回答