Day 8, Data structure in coursera- Stress Test

Stress Test: 压力测试:

顾名思义,就是将程式放置在极为极端的情况下进行测试,就好像我们在学测考试前的数次模拟考一样,明明难度比真的考试难很多倍,能够重创学生的考试信心以及早点放弃自我,那为甚么要多花钱一起考呢?这是因为,只有在极端难的测试中,我们才能发现自己的盲点死穴,及早修正及早改善学习中的问题。然而,今天所知的压力测试不再是花钱就能请人帮忙测的了,课程会教我们做一个能解决一样问题的解法就算是暴力法也OK,做出正确输出样本,然后再与我们新的程式同时测压力测试,也就是输入无限随机性资料,比较彼此的答案是否一致,目的是希望新的程式与对照程式结果若能一致,就算是不错的。然而,人算不如天算,不管对照用程式还是新测试程式,都有可能是错误的,只是错的点不一样而已,今天的课程衔接上个题目(Day 7),找出最大乘积的题目:

#include<iostream>#include<vector>using namespace std;long long MaxPairwiseProduct(const vector<int>& numbers){long long result =0;int n = numbers.size();for(int i=0;i<n;i++){for(int j=i+1; j<n;j++){if((long long)numbers[i] * numbers[j] > result){result = numbers[i]*numbers[j];}}}return result;}int main(){int n;cin>>n;vector<int>numbers(n);for(int i=0;i<n;i++){cin>>numbers[i];}int result = MaxPairwiseProduct(numbers);cout<<result<<"\n";}

该程式最终没有通过压力测试,因为随着输入的数值越多计算时间太长,最终导致失败。但是将作为我们测试用的程式

/* Online C++ Compiler and Editor */#include<cstdlib>#include<iostream>#include<vector>using std::vector;using std::cin;using std::cout;long long MaxPairwiseProduct(const vector<int>& numbers){//暴力解,对照组long long result =0;int n = numbers.size();for(int i=0;i<n;i++){    for(int j=i+1; j<n;j++){            if((long long)numbers[i] * numbers[j] > result){            result = numbers[i]*numbers[j];        }​    }}return result;}long long MaxPairwiseProductFast(const vector<int>& numbers){//快速解,实验组    int n = numbers.size();        int max_index1 = -1;    for(int i=0;i<n;i++){        if((max_index1 = -1||(numbers[i]>numbers[max_index1]))){            max_index1 = i;        }    }    inr max_index2 = -1;    for(int j=0;j<n;j++){        if((numbers[j]!=numbers[max_index1])&&        ((max_index2 == -1)||(numbers[j]>numbers[max_index2]))){            max_index2 = j;        }    }    return ((long long )(numbers[max_index1]))*numbers[max_index2];}int main(){    while(true){        int n=rand()%10+2;//2~11输入        cout<<n<<"\n";        vector<int>a;        for(int i=0;i<n;i++){            a.push_back(rand()%10000);//随机测资资料        }        for(int i=0;i<n;i++){           cout<<a[i]<<' ';        }        cout<<"\n";        long long res1 =  MaxPairwiseProduct(a);        long long res2 =  MaxPairwiseProductFasr(a);        if(res1!=res2){            cout<<"Wrong answer: "<<res1<<" "<<res2<<"\n";            break;        }        else{            cout<<"OK"<<"\n";        }    }    int n;    cin>>n;    vector<int>numbers(n);    for(int i=0;i<n;i++){        cin>>numbers[i];    }        long long result  = MaxPairwiseProductFasr(numbers);    cout<<result<<"\n";    return 0;}

今天就到这里,我尽可能学习。
附上疑似当机跑测试图。
http://img2.58codes.com/2024/20149573WsCs3L0rjC.png


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章