zoukankan      html  css  js  c++  java
  • 产生不同比例的随机数

    需求:

      1000个整数,其中85%取值2或者3,其他的随机分布在1到7之间。

    想法:

      1.首先,随机产生1000个0~1000的随机数,假设为数组x,将x赋值给y。

          2.接着将y中不大于x[850]的值,赋值为随机产生的2或3

      3.然后将不小于x[850]的值赋值为1,4,5,6,7。

    关键代码:

    for (int i=1; i<=num; i++)
        {
            if(y[i]<=x[850]&&num1<850)
            {
                y[i]=rand()%MAX2+2;
                num1++;
            }
            else
            {   //2.如何得到值为1,4,5,6,7
                y[i]=rand()%MAX1+1;//得到随机数1~5
                if(y[i]>1)y[i]=y[i]+2;//如果大于1。将2~5换到4~7
            }
        }

    完整代码:

    #include <fstream>
    #include <iostream>
    #include<stdlib.h>
    #include<algorithm>
    #include <time.h>
    using namespace std;
    
    #define MAX 1000
    #define MAX1 5
    #define MAX2 2
    #define num 1000
    
    int main(int argc, char* argv[])
    {
    
        srand((unsigned)time(NULL));         //srand()函数产生一个以当前时间开始的随机种子
    
        ofstream file2;
        file2.open("C:\Users\XDJ\Desktop\1.txt");//以输入方式打开文件
    
        int x[num+1];
        int y[num+1];
    
        for (int i=1; i<=num; i++)
        {
            x[i]=rand()%MAX+1;//MAX为最大值,其随机域为0~MAX-1
            y[i]=x[i];
        }
        sort(x+1,x+num+1);
        int num1=0;
        for (int i=1; i<=num; i++)
        {
            if(y[i]<=x[850]&&num1<850)
            {
                y[i]=rand()%MAX2+2;
                num1++;
            }
            else
            {   //2.如何得到值为1,4,5,6,7
                y[i]=rand()%MAX1+1;//得到随机数1~5
                if(y[i]>1)y[i]=y[i]+2;//如果大于1。将2~5换到4~7
            }
        }
        for (int i=1; i<=num; i++)
            file2<<i<<"	"<<y[i]<<endl;
        file2.close();
        return 0;
    }
  • 相关阅读:
    LeetCode:删除有序数组中的重复项
    ABAP新语法之内联声明
    SAL实战练习-全选及按钮事件等
    固定资产创建BAPI_FIXEDASSET_CREATE--含扩展结构字段EXTENSIONIN
    SAP-采购订单-数据输入校验
    外围系统传SAP---OUT2SAP接口测试
    SAP2OUT异步接口测试
    SAP2OUT同步接口测试
    SAP-批量创建货源清单
    BDC-用户锁定及有效期设置程序
  • 原文地址:https://www.cnblogs.com/XDJjy/p/5267373.html
Copyright © 2011-2022 走看看