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;
}