#include<iostream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;
#define BUFSIZE 1024
#define LINESIZE 26
fstream tongji;
class Number{
public:
int index;
int date;
int num1;
int num2;
int num3;
int num4;
int num5;
bool compare;
int step;
Number* last;
public:
Number(){
}
bool compare2(Number * number){
if(number->num1 == num1)
return true;
return false;
}
string toString(){
string str;
char buffer[20];
sprintf(buffer, "%d ", index);
str.append(buffer);
sprintf(buffer, "%d ", date);
str.append(buffer);
sprintf(buffer, "%d ", num1);
str.append(buffer);
sprintf(buffer, "%d ", num2);
str.append(buffer);
sprintf(buffer, "%d ", num3);
str.append(buffer);
sprintf(buffer, "%d ", num4);
str.append(buffer);
sprintf(buffer, "%d ", num5);
str.append(buffer);
sprintf(buffer, "%d ", step);
str.append(buffer);
return str;
}
};
void createNumberArray(vector<Number*> *vec){
char buffer [BUFSIZE];
fstream readFile;
fstream writeFile;
readFile.open("info.txt" , ios_base::in | ios_base::out);
writeFile.open("out.txt" , ios_base::in | ios_base::out | ios_base::trunc);
while(!readFile.eof()){
readFile.getline(buffer, BUFSIZE);
string str(buffer);
int index = 0;
int tmp = 0;
while((tmp = str.find_first_of((char)9, tmp)) != -1)
str.replace(tmp, 1, " ", 2);
while((index = str.find_first_of(',' , index)) != -1)
str.replace(index, 1, " " , 2);
writeFile.write(str.c_str(), str.length());
writeFile.write("\r\n",2);
}
writeFile.seekg(0);
while(!writeFile.eof())
{
writeFile.getline(buffer, BUFSIZE);
Number* num = new Number();
string str(buffer);
int index1 = 0;
int index2 = 0;
int i = 0;
while((index1 = str.find_first_not_of(' ' , index1)) != -1)
{
if((index2 = str.find_first_of(' ', index1)) == -1)
{
index2 = str.length();
}
string substr(str.substr(index1,index2-index1));
index1 = index2;
*((int *)(num) + i) = atoi(substr.c_str());
i++;
}
num->compare = false;
num->step = 0;
num->last = NULL;
vec->push_back(num);
}
readFile.flush();
readFile.close();
writeFile.flush();
writeFile.close();
}
int main(){
tongji.open("tongji.txt" , ios_base::in | ios_base::out | ios_base::trunc);
vector<Number*> vec;
createNumberArray(&vec);
//将中奖号码数据结构化
int total = vec.size();
for(unsigned int i = 0; i < vec.size(); i++)
{
bool find = false;
int last = i;
int count_number = 0;
if(vec[i]->compare == true)
continue;
else{
int count2 = 0;
for(unsigned int j = i+1; j < vec.size(); j++){
if(true == vec[i]->compare2(vec[j])){
count_number++;
find = true;
if(vec[i]->compare == false){
tongji.write(vec[i]->toString().c_str(), vec[i]->toString().length());
tongji.write("\r\n", 2);
vec[i]->compare = true;
}
vec[j]->compare = true;
vec[j]->step = vec[j]->index - vec[last]->index;
last = j;
if(vec[j]->step < 3){
count2++;
}
tongji.write(vec[j]->toString().c_str(), vec[j]->toString().length());
tongji.write("\r\n", 2);
}
}
cout<<count2<<" "<<count_number<<" "<< double(count2)/(double)count_number <<endl;
cout<<(double)count_number/(double)total<<" "<<vec[i]->num1<<endl;
if(find == true){
tongji.write("\r\n", 2);
tongji.write("\r\n", 2);
tongji.write("\r\n", 2);
}
}
}
cout<<(double)1/(double)11<<endl;
return 0;
}
转载于:https://blog.51cto.com/dongxiao/723865