10输入10输出组合算法问题
系统有10输入和10输出,现在要将任意几路输入与输出配对。a1,a2,a3,a4,a5,a6,a7,a8,a9,a10输入b1,b2,b3,b4,b5,b6,b7,b8,b9,b10输出,任意几个输入配对给输出,例如a2,a4,a6输入配对b3,b7,b9。
a7,a8,a9,a10配对b1,b2,b3,b6
有没有什么好算法?求教
#include <iostream> #include <time.h> using namespace std; int panduan(int b[],int num,int c); int main() { srand((unsigned)time(NULL)); int a[10]={0,1,2,3,4,5,6,7,8,9}; int num=-1,b[10],c; b[num]=rand()%10; for(int i=0;i<10;i++) { c=rand()%10; while(panduan(b,num,c)) //判断如果有和以前的数相等,则重新生成随机数 { c=rand()%10; } num++; b[num]=c; cout<<a[i]<<"->"<<b[i]<<endl; } return 0; } int panduan(int b[],int num,int c) //判断如果有和以前的数相等 { int boolean=0; for(int i=0;i<num+1;i++) { if(c==b[i]) boolean++; } return boolean; }