欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

生成N位不重复的随机数

程序员文章站 2022-06-02 13:42:37
...
+ (void)randomNumber:(int)number
{
//    int random = rand() % number;
//    printf("%d: %d\n", number, random);
    
    int randoms[number];
    for (int i = 0; i < number; i++) {
        
        while (1) {
            bool isRight = YES; // 是否保存
            int random = rand() % number; // 随机数
            for (int j = 0; j < i; j++) {
                // 判断是否重复,重复时,跳出判断循环
                if (randoms[j] == random) {
                    isRight = NO;
                    break;
                }
            }
            
            // 不重复时,保存,并退出while循环
            if (isRight) {
                randoms[i] = random;
                break;
            }
        }
    }
    
    for (int i = 0; i < number; i++) {
        printf("%d: %d\n", number, randoms[i]);
    }
}
[ViewController randomNumber:10];

结果

10: 7
10: 9
10: 3
10: 8
10: 0
10: 2
10: 4
10: 5
10: 6
10: 1