首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在objective-c/iOS中对两个变量生成不同的随机运算符

在objective-c/iOS中对两个变量生成不同的随机运算符
EN

Stack Overflow用户
提问于 2014-01-20 06:40:44
回答 1查看 137关注 0票数 0

我采用了两个标签&使用下面的代码在它们上生成随机操作符:

代码语言:javascript
复制
NSArray  *operators = @[@"+", @"-", @"*", @"/"];
int       randomOperatorIndex = arc4random_uniform(4);
NSString *randomOperator = operators[randomOperatorIndex];

但是这两个标签都生成了相同的随机算子。我想在两个标签上生成不同的运算符。例如:

如果label-1生成"+“

那么label-2应该生成"/“

但现在label-1和label-2在生成随机算子后具有相同的算子。

我如何用Objective-C在iOS上做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2014-01-20 08:59:04

试试这个:

代码语言:javascript
复制
// Returns an array of unique random numbers with range
-(NSMutableArray *)getRandomNumbersOfSize:(int) size from:(int) lowerLimit to:(int) higherLimit
{
    NSMutableArray *uniqueNumbers = [[NSMutableArray alloc] init];
    int r;
    while ([uniqueNumbers count] < size)
    {
        r = lowerLimit + arc4random_uniform(higherLimit - lowerLimit + 1) ;
        if (![uniqueNumbers containsObject:[NSNumber numberWithInt:r]])
        {
            [uniqueNumbers addObject:[NSNumber numberWithInt:r]];
        }
    }
    return uniqueNumbers;
}

在你的方法中,你需要唯一的随机标签:

代码语言:javascript
复制
NSArray  *operators = @[@"+", @"-", @"*", @"/"];
        NSMutableArray*       randomOperatorIndexArray = [self getRandomNumbersOfSize:2
                                                                                 from:0
                                                                                   to:([operators count]-1)];

        for(int j=0;j<[randomOperatorIndexArray count];j++)
        {
            NSString *randomOperator = [operators objectAtIndex:[[randomOperatorIndexArray objectAtIndex:j] intValue]];
            NSLog(@"%@",randomOperator);
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21223622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档