无相痞子 无相痞子
关注数: 19 粉丝数: 1 发帖数: 72 关注贴吧数: 1
改进程序 每一卦是一个6位的二进制,把64卦排成一列,使满足下面的条件:第1卦的后5位与第2卦的前5位相同;第2卦的后5位与第3卦的前5位相同;............第63卦的后5位与第64卦的前5位相同;第64卦的后5位与第1卦的前5位相同;找到所有满足这个条件的排列。#include #include #include #include #include #include #include using namespace std;using boost::lexical_cast;bool jh(vector ,int,int,int);int mi(int i,int j){ if (j==0) return 1; else return i*mi(i,j-1); };//易卦串—类 class yiguachuan{ private: int _jinzhi,_wei,_chang; int _num_checked; int _howMany_will_check; int _howMany_checked; vector > _vvi; ofstream outfile; public: yiguachuan(); bool xunzhao(); void out2File(); int jixufou(){ return _howMany_will_check; } };yiguachuan::yiguachuan(){ _howMany_checked=0; _howMany_will_check=1; cout<<"enter jinzhi and wei:"; cin>>_jinzhi>>_wei; string file_name= "jinzhi"+ lexical_cast (_jinzhi)+ "wei"+ lexical_cast (_wei)+ "说明"+ ".txt"; outfile.open(file_name.c_str(),ios_base::app); outfile<<"进制:"<<_jinzhi<<";"<<"位:"<<_wei<<";"< vi; for(int i=0;i<_wei;++i){vi.push_back(0);} _vvi.push_back(vi); };bool yiguachuan::xunzhao(){ vector vi=*_vvi.begin(); int chang=vi.size(); for(int i=chang-_wei+1;i<_chang;i++){ for(int i_jinzhi=_jinzhi-1;i_jinzhi>0;--i_jinzhi){ if(!jh(vi,i,_wei,i_jinzhi)) { vi.push_back(i_jinzhi); _vvi.insert(_vvi.begin()+1,vi); ++_howMany_will_check; vi.pop_back(); } } if(jh(vi,i,_wei,0)){_vvi.erase(_vvi.begin()); --_howMany_will_check;return false ;} else { vi.push_back(0);
排列组合 每一卦是一个6位的二进制,把64卦排成一列,使满足下面的条件:第1卦的后5位与第2卦的前5位相同;第2卦的后5位与第3卦的前5位相同;............第63卦的后5位与第64卦的前5位相同;第64卦的后5位与第1卦的前5位相同;找到所有满足这个条件的排列。#include #include #include #include #include #include #include using namespace std;using boost::lexical_cast;bool jh(vector ,int,int,int);int mi(int i,int j){ if (j==0) return 1; else return i*mi(i,j-1); };//易卦串—类 class yiguachuan{ private: int _jinzhi,_wei,_chang; int _num_checked; int _howMany_will_check; int _howMany_checked; vector > _vvi; ofstream outfile; public: yiguachuan(); bool xunzhao(); void out2File(); int jixufou(){ return _howMany_will_check; } };yiguachuan::yiguachuan(){ _howMany_checked=0; _howMany_will_check=1; cout<<"enter jinzhi and wei:"; cin>>_jinzhi>>_wei; string file_name= "jinzhi"+ lexical_cast (_jinzhi)+ "wei"+ lexical_cast (_wei)+ "说明"+ ".txt"; outfile.open(file_name.c_str(),ios_base::app); outfile<<"进制:"<<_jinzhi<<";"<<"位:"<<_wei<<";"< vi; for(int i=0;i<_wei;++i){vi.push_back(0);} _vvi.push_back(vi); };bool yiguachuan::xunzhao(){ vector vi=*_vvi.begin(); int chang=vi.size(); for(int i=chang-_wei+1;i<_chang;i++){ for(int i_jinzhi=_jinzhi-1;i_jinzhi>0;--i_jinzhi){ if(!jh(vi,i,_wei,i_jinzhi)) { vi.push_back(i_jinzhi); _vvi.insert(_vvi.begin()+1,vi); ++_howMany_will_check; vi.pop_back(); } } if(jh(vi,i,_wei,0)){_vvi.erase(_vvi.begin()); --_howMany_will_check;return false ;} else { vi.push_back(0);
1 下一页