• Linux下对拍脚本与随机数生成器


    对拍脚本


     

    新建一个文档 check.sh 作为对拍脚本.

    #!/bin/bash
    while(true)do #死循环
    ./data > 1.in #运行数据生成器,将数据输出到1.in 
    ./std < 1.in > out1 #std是标准(暴力)程序
    ./now < 1.in > out2 #now是现在要被测的程序
    if diff -w out1 out2; then #比较,-w 是忽略行末空格
    echo AC #如果一样就输出AC
    else
    echo WA 
    cat out1 out2 #不然就输出WA,并显示不相同的地方
    break
    fi #结束if
    sleep 1 #如果使用srand(),随机数是秒级别的,用sleep 1让它延迟一秒,不至于相同的数据在一秒内跑好多遍
    done #结束循环
    View Code

    在命令行 data.sh 所在的目录输入 ./check.sh 即可运行.

    如果显示权限不够,则输入 : chmod 777 ./check.sh 即可.其中777代表对所有用户开放权限什么的.

    随机数生成器


     

    #include <cstdio>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    int main(){
        srand((unsigned int)time(NULL));
        for(int i=1;i<=2;i++){
            printf("%d ",(int)(rand()%10000));
        }
        return 0;
    }
    //如果使用std=c++11编译的话可以不用stdlib和time头文件,改为random即可
    秒级的随机数
    #include <cstdio>
    #include <random>
    using namespace std;
    int main(){
        random_device seed;
        mt19937 RAND(seed());
        for(int i=1;i<=2;i++)
            printf("%d ",(int)(RAND()%10000));
        return 0;
    }
    //必须使用std=c++11编译
    Linux下真随机数(推荐)

    示例是生成两个随机数.

  • 相关阅读:
    substr函数
    Oracle 日期处理
    translate函数使用
    nvl函数
    random随机函数
    case语句
    列的拼接
    并行HASH JOIN小表广播问题
    WITH AS 优化逻辑读
    【hihoCoder挑战赛28 A】异或排序
  • 原文地址:https://www.cnblogs.com/Sunnie69/p/5509796.html
Copyright © 2020-2023  润新知