生成固定数字长度的随机数?

时间:2013-09-27 13:21:20

标签: objective-c arc4random

我正在使用

生成随机数
int randomID = arc4random() % 3000;

但我想生成至少4位数的随机数。像1000,2400,1122

我想知道Objective C的代码。

2 个答案:

答案 0 :(得分:23)

请尝试

生成数字:1000~9999

int randomID = arc4random() % 9000 + 1000;

生成数字:1000~2999

int randomID = arc4random() % 2000 + 1000;

答案 1 :(得分:8)

至少四位数,对吧?

所以你需要灵活的东西:

-(NSString *)getRandomPINString:(NSInteger)length
{
    NSMutableString *returnString = [NSMutableString stringWithCapacity:length];

    NSString *numbers = @"0123456789";

    // First number cannot be 0
    [returnString appendFormat:@"%C", [numbers characterAtIndex:(arc4random() % ([numbers length]-1))+1]];

    for (int i = 1; i < length; i++)
    {
        [returnString appendFormat:@"%C", [numbers characterAtIndex:arc4random() % [numbers length]]];
    }

    return returnString;
}

并按如下方式使用:

NSString *newPINString = [self getRandomPINString:4];