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;
    }
  • 相关阅读:
    Football Foundation (FOFO) TOJ 2556
    JAVA- String类练习
    JAVA- 清除数组重复元素
    Mysql远程登陆错误:ERROR 2003
    Linux学习之路(五)压缩命令
    Linux学习之路(四)帮助命令
    如何识别真Microsoft服务与非Microsoft服务来定位病毒自己的服务
    如何用命令行删除EasyBCD开机选择项?
    JAVA- 成员变量与局部变量的区别
    JAVA- 内部类
  • 原文地址:https://www.cnblogs.com/XDJjy/p/5267373.html
Copyright © 2011-2022 走看看