首页 > 其他分享 >造数据?拿脚造!

造数据?拿脚造!

时间:2023-09-09 15:23:26浏览次数:29  
标签:mt19937 int 脚造 long rnd argv include 数据

造数据方法大全

在一切的一切开始之前

优质的随机数?rand()

#include<chrono>
#include<random>
mt19937_64  rnd(chrono::steady_clock::now().time_since_epoch().count());//unsigned long long
mt19937  rnd(chrono::steady_clock::now().time_since_epoch().count());//unsigned int

简单一点?

#include<random>
#include<ctime>
mt19937_64  rnd(time(0));//unsigned long long
mt19937  rnd(time(0));//unsigned int

需要负数?

推出我们的梅森旋转引擎

mt19937_64 egn(time(0));
uniform_int_distribution<long long> rnd(l,r);/* 根据范围给出l,r */
cout<<rnd(egn)<<' ';

打乱序列?

int a[1024];
for(int i=0;i<1024;i++)a[i]=i;
srand(time(NULL));
random_shuffle(a,a+1024);

高质量的->

#include<chrono>
#include<random>
#include<iostream>
#include<algorithm>
using namespace std;
mt19937_64  rnd(chrono::steady_clock::now().time_since_epoch().count());
int main(){
    int a[10];
    for(int i=0;i<10;i++)a[i]=i;
    shuffle(a,a+10,rnd);
    for(int i=0;i<10;i++)cout<<a[i]<<endl;
}

在一切开始之前

脚本读出?

造数据的时候可能需要通过命令行脚本.bat

DataMaker.exe num1 num2 > 1.in
DataMaker.exe num1 num2 >> 2.in
DataMaker.exe num3 num4 > 3.in
...

这时候我们需要将main()

int main(){

}

更改为

int main(int argc,char* argv[]){
    int a = atoi(argv[1]);
    long long b = atoll(argv[2]);
    double c = atof(argv[3]);
}

文件输入输出?

#include<fstream>
int main(int argc,char* argv[]){
    ifstream fin;
    ofstream fout;
    fin.open("your file");
    fout.open("your file");
    int n;
    fin>>n;
    fout<<n;
}

打开类型

常量 含义
ios_base::in 打开文件,读取
ios_base::out 打开文件,写入
ios_base::ate 打开文件,移到文件尾
ios_base::app 追加到文件尾
ios_base::trunc 如果文件存在,则截断文件
ios_base::binary 二进制文件

上面的fout.open()其实是有三个参数的,第一个是文件的路径,第二个是打开文件的类型,第三个是权限。如果不写的话,会采用默认参数,就是ios_base::out|ios_base::trunc

开始之前

模仿testlib.h(Github)

我们给出一些常用的rand方式

mt19937_64  engll(chrono::steady_clock::now().time_since_epoch().count());
mt19937  engi(chrono::steady_clock::now().time_since_epoch().count());
long long randll(long long l=LLONG_MIN,long long r=LLONG_MAX){
    /* generate a random number from [l,r] */
    if(l>r)swap(l,r);
    uniform_int_distribution<long long> rnd(l,r);
    return rnd(engll);
}
long long tRandll(long long l=LLONG_MIN,long long r=LLONG_MAX,long long t=0){
    /* random abs(t)+1 times and get the max(opposite)/min(negtive) value from [l,r], */
    if(l>r)swap(l,r);
    uniform_int_distribution<long long> rnd(l,r);
    long long ans;
    if(t>=0){
        ans = l;
        for(long long i = 1;i<=t+1;i++){
            ans=max((long long)rnd(engll),ans);
        }
    }else{
        t = abs(t);
        ans = r;
        for(long long i = 1;i<=t+1;i++){
            ans=min((long long)rnd(engll),ans);
        }
    }
    return ans;
}
int randi(int l=INT32_MIN,int r=INT32_MAX){
    /* generate a random number from [l,r] */
    if(l>r)swap(l,r);
    uniform_int_distribution<int> rnd(l,r);
    return rnd(engi);
}
int tRandi(int l=INT32_MIN,int r=INT32_MAX,int t=0){
    /* random abs(t)+1 times and get the max(opposite)/min(negtive) value from [l,r], */
    if(l>r)swap(l,r);
    uniform_int_distribution<int> rnd(l,r);
    int ans;
    if(t>=0){
        ans = l;
        for(int i = 1;i<=t+1;i++){
            ans=max((int)rnd(engi),ans);
        }
    }else{
        t = abs(t);
        ans = r;
        for(int i = 1;i<=t+1;i++){
            ans=min((int)rnd(engi),ans);
        }
    }
    return ans;
}

好戏开场

造一棵树

普通树(链/菊花)

\(\Large{\textbf{Code}}\) 代码如下

//tree.cpp

/* #define IOFILE *///Optional
int main(int argc,char* argv[]){
    int n = atoi(argv[1]);
    int t = atoi(argv[2]);
    #ifdef IOFILE
    ofstream fout;
    fout.open(argv[3]);
    #endif

    vector<int>fa(n);
    for(int i = 1;i<n;i++){
        fa[i] = tRandi(0,i-1,t);
    }

    vector<int>id(n);
    for(int i = 0;i<n;i++)id[i]=i+1;
    shuffle(id.begin(),id.end(),engi);

    struct EDGE{int a,b;};
    vector<EDGE>edge;

    for(int i = 1;i<n;i++){
        int fat = id[fa[i]],pos=id[i];
        if(randi()>0)swap(fat,pos);
        edge.push_back((EDGE){fat,pos});
    }
    shuffle(edge.begin(),edge.end(),engi);
    #ifdef IOFILE
    fout<<n<<"\n";
    for(EDGE i:edge){
        fout<<i.a<<" "<<i.b<<"\n";
    }
    #endif
    #ifndef IOFILE
    printf("%d\n",n);
    for(EDGE i:edge){
        printf("%d %d\n",i.a,i.b);
    }
    #endif
    return 0;
}

\(\Large{\textbf{Require}}\) 你需要喂给我:

tree.exe N T F
<!-- N节点个数, T随机次数(正的越大越链,负的越小越菊花), F(可选,若在程序中定义了IOFILE,则填入输出文件名) -->

蒲公英

造两棵树,一个是链,另一个是菊花
把链的端点和菊花的花心连起来

造一张图

标签:mt19937,int,脚造,long,rnd,argv,include,数据
From: https://www.cnblogs.com/betteroier/p/17689504.html

相关文章

  • Java基础——基本数据类型转换
    基本数据类型转换基本数据类型数据类型所占字节取值范围boolean未定false与truebyte1个字节-2^7~2^7-1char2个字节0~2^16-1short2个字节-2^15~2^15-1int4个字节-2^31~2^31-1long8个字节-2^63~2^63-1float4个字节-2^128~+2^128double8个字节-2^1024~+2^1024方法调用规则从低位类型到......
  • 9.9数据结构
    ADT抽象数据类型:数据抽象、数据封装特点:数据封装,实现与现实分离,信息隐藏 数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理数据项:是组成数据元素的,有独有的含义,不可分割的最小单位 在计算机中存储数据时,通常不仅要存储各数据元素的值,还要存储数据元素......
  • 信管知识梳理(二)常规信息系统集成技术(网络协议、网络存储技术、网络工程、数据仓库和中
    一、网络标准与网络协议1.1OSI网络七层架构国际标准化组织(ISO)提出的网络体系结构模型,也叫做开发系统互连参考模型(OSI/RM),通常叫做OSI参考模型。如下图所示:物理层、数据链路层、网络层:统称为通信子网。是为了联网而附加的通信设备完成数据的传输功能。应用层、表示层、会......
  • ArcPy用矢量数据的空间范围裁剪多张遥感影像
      本文介绍基于Python中ArcPy模块,基于矢量数据范围,对大量栅格遥感影像加以批量裁剪掩膜的方法。  首先,话不多说,本文所需要的代码如下所示。#-*-coding:utf-8-*-"""CreatedonTueDec1320:07:482022@author:fkxxgis"""importarcpyfromarcpy.saimport*t......
  • CDGP|数据治理对企业的转变有哪些?
    随着数字化转型的不断推进,数据已经成为企业的重要资产之一。数据治理作为数据管理的一个重要方面,对于企业的转变产生了深远的影响。本文将探讨数据治理如何改变企业。数据治理是指对数据进行规范、标准和安全的管理过程。通过数据治理,企业可以更好地管理和利用数据,提高数据的质量和......
  • 数据通信网络之IPv6静态路由
    文章及资源归档至公众号【AIShareLab】,回复通信系统与网络可获取。一、目的掌握路由器的IPv6基础配置。掌握静态IPv6路由的基础配置。理解IPv6数据报文的路由过程。二、拓扑如图1所示,三台路由器R1、R2和R3分别通过相应物理接口进行连接,其中,R1及R3各自下联一个网段......
  • 数据库——B树、B+树和B*树
    二叉查找树BST二叉查找树,也称二叉搜索树,或二叉排序树。其定义为,要么是一颗空树,要么就是具有如下性质的二叉树:(1)若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)任意节点的左、右子树......
  • 数控程序传输DNC服务、数控刀补服务(发那科fanuc、西门子、三菱、广数、新代、华中、宝
    行业现状:最近听到很多做MES、ERP这一行的叫苦,客户对项目的要求越来越严格,做到数字化工厂都伴随着ERP、MES的项目要求必须一起做下去然而很对MES、ERP对设备协议不懂,买了协议自己还要开发,考虑线程的问题、断线重连的问题然而很多一直再制造行业的耕耘着,有着接近百分之30%的ERP、......
  • delphi FireDAC 调用 Execute 提示 `[FireDAC][SQL Server Native Client 10.0]字符串
    FireDAC调用Execute提示[FireDAC][SQLServerNativeClient10.0]字符串数据,长度不匹配错误问题调用Execute向SQLServer数据库中批量插入数据时,参数中有BLOB数据类型(ftBlob、ftMemo等)时,出现[FireDAC][Phys][ODBC][Microsoft][SQLServerNativeClient10.0]字符串......
  • 15.mysql数据库安全性
    MySQL数据库的安全性是一个复杂而广泛的主题,它涉及多个方面,包括访问控制、数据保护、身份验证、审计和防止常见的数据库攻击等。以下是一些常见的MySQL数据库安全性最佳实践和示例代码,以帮助您加强MySQL数据库的安全性。请注意,这只是一个起点,实际的安全措施可能因应用程序和......