ios - 随机显示一对用户,并且不再显示同一对用户

标签 ios combinations

我试图弄清楚如何将一组用户中的一对用户呈现给应用程序的 current_user,而不是让 current_user 看到相同的内容又是一对用户。从数学上来说,我理解这是一个n select 2,其中n是用户数组的大小。但是,我不确定如何设置数据结构,以便它可以随机将所有对的组合呈现给current_user。谢谢!

最佳答案

我将创建一个包含两个用户的 id 的类。

@interface userPair: NSObject

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

@end

我只需创建一个包含所有可能对的 NSMutableArray,然后运行这个很棒的洗牌方法:(取自 this answer )

- (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];
    }
}

关于ios - 随机显示一对用户,并且不再显示同一对用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18394152/

相关文章:

ios - Xcode 7/iOS 9 中的 Api 调用错误(如何在 plist 中设置 App Transport Security)

ios - 应用程序传输安全 Xcode 7 beta 6

Python/Pandas 在一个限制下获得所有可能的组合

iphone - NSDateFormatter 返回意外结果

ios - 在 iOS 10 或更低版本中,当它处于后台或处于打开状态时从应用程序获取来电号码?

ios - 后台模式下的 iBeacon 访问

c# - 如何开始使用 C# 测试按键事件?

php - 排除不可能的选择

python - python-如何创建k个给定字符中n个字符系列的所有组合的数组

c# - Linq 中的组合生成器