美文网首页
产生不重复随机数

产生不重复随机数

作者: kkkk小天使 | 来源:发表于2020-05-21 17:54 被阅读0次

代码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h >
//产生四个(不同)随机数  保存到数组  输出  
int main(){
    int array[4] = {};
    
    srand(time(NULL));
    
    //生成数组 
    //产生随机数的同时比较是否重复
    //重复重新生成,不重复保存
    //每次i的值正好可以用来判断已经存在了几个 

    for(int i = 0; i < 4; i++){
        int temp = rand() % 4;
        
        if(i == 0){//第一个直接保存 
            array[i] = temp;
        } else{
            //判断前面是否已经存在
            int j = 0;
            for(; j < i; j++){
                //比较j对应的值和temp是否相同
                if(array[j] == temp){
                    //重复了
                    break; 
                } 
            } 
            //判断是怎么出来的
            if(j == i){
                //将i前面的比较一遍都没重复
                //保存temp值
                array[i] = temp; 
            } else{
                //重复了
                //重新回到当前这一次
                i--; 
            }
            
        }
        
    } 
    //输出 
    //数组中元素不能同时访问 
    for(int i = 0; i < 4; i++){
        printf("%d  ",array[i]); 
    } 
    
    return 0;
}

注意点:

1、定义数组之后需要初始化

2、不重复需要与前面的数字比较,数字相同时重新生成

3、在i++的循环中,为了避免跳过该次循环,i--

相关文章

  • 随机数产生方法

    不指定范围产生随机数 使用rand(),需要包含头文件cstdlib,代码如下: 通过以上代码得到5个随机数,重复...

  • C-猜数字游戏

    目的 通过实现猜数字小游戏,达到掌握随机数的产生,去除重复数据,排序的作用 技术 随机数的产生,去除重复数据,排序...

  • 产生不重复随机数

    代码: 注意点: 1、定义数组之后需要初始化 2、不重复需要与前面的数字比较,数字相同时重新生成 3、在i++的循...

  • Swift - 产生不重复的随机数

    产生不重复的随机数 不考虑复杂度,简单粗暴法

  • C# Random.Next()产生不重复随机数

    获取随机数,苦恼重复问题; 在循环中,rd.Next()会由于默认的时间间隔太小而产生出重复随机数,解决方案有两种...

  • C++ 产生不重复随机数的方法

    要产生乱序的随机数字,正面来解决特别的复杂。反过来思考,假设要生成0-99,100个随机数字,且不重复。那么就相当...

  • c++不重复随机数序列

    参考 C++ 产生不重复随机数的方法[https://www.jianshu.com/p/fd23141df09a...

  • C# Random.Next()产生不重复随机数

    在日常使用中,我们经常需要用到随机数模块。在循环中,rd.Next()会由于默认的时间间隔太小而产生出重复随机数,...

  • c++随机数

    c++产生若干随机数 产生某一区间的随机数

  • 系统随机数产生方法

    1、通过系统环境变量($RANDOM)产生随机数 2、通过openssl产生随机数 3、通过时间获得随机数(dat...

网友评论

      本文标题:产生不重复随机数

      本文链接:https://www.haomeiwen.com/subject/ohetahtx.html