对拍器

我也是刚学的。。。。

对拍器组成:

1.高效代码:my.exe

2.正确代码:check.exe

3.数据生成器:rand.exe

4.批处理文件:test.bat

主要是批处理文件:

@echo off  
:loop
    rand.exe>data.in  
    my.exe<data.in>my.out
    check.exe<data.in>check.out  
    fc my.out check.out  
if not errorlevel 1 goto loop  
pause  
goto loop

举例:1到n的和

my:

#include<iostream>
using namespace std;
main()
{
    int n;
    cin >> n;
    cout << (n + 1) * n / 2 << endl;
}

check:

#include<iostream>
using namespace std;
main()
{
    int n, sum = 0;
    cin >> n;
    for(int i = 1; i <= n; i++)
        sum += i;
    cout << sum << endl;
}

rand:

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
main()
{
    srand((int)time(NULL));
    cout << 1 + rand() % 10000000 << endl;
}
my.exe, check.exe, rand.exe, test.bat放在同一路径下。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对拍是指用不同的算法或不同的实现方式,对同一个问题进行多次求解,并比较结果是否一致的过程。对拍可以帮助我们验证算法的正确性和效率。 下面是在 Linux 下进行对拍的简单教程: 1. 编写暴力算法和优化算法的代码,并分别编译生成可执行文件。 2. 编写一个随机数据生成器的代码,并编译生成可执行文件。 3. 编写一个脚本文件,用于自动执行对拍过程。 4. 在脚本文件中,先执行随机数据生成器,将生成的数据保存到文件中。 5. 然后分别执行暴力算法和优化算法,将结果保存到不同的文件中。 6. 最后使用 diff 命令比较两个结果文件是否一致。 下面是一个简单的脚本文件示例: ```bash #!/bin/bash for ((i=1;i<=10;i++)) do ./data_generator > input.txt ./brute_force < input.txt > bf_output.txt ./optimized_solution < input.txt > opt_output.txt if diff bf_output.txt opt_output.txt >/dev/null ; then echo "Test case $i: PASSED" else echo "Test case $i: FAILED" exit 1 fi done echo "All test cases PASSED" exit 0 ``` 这个脚本文件会执行 10 次对拍,每次生成随机数据,然后分别执行暴力算法和优化算法,最后使用 diff 命令比较两个结果文件是否一致。如果两个结果文件一致,则输出 "PASSED",否则输出 "FAILED" 并退出程序。如果所有测试用例都通过,则输出 "All test cases PASSED"。 以上是在 Linux 下进行对拍的简单教程,希望对你有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值