问题描述
一13个字母(a,b,c,d....m),随机从中取五个字母组成一个五个字母的组合(如a,b,c,d,e),同一个组合中不能有重复的字母(如a,b,c,d,d此组合中重复了d,不可以)。二共取346个组合,要求各个组合不重复,且每个组合与前面的6个组合相似的字母不多于2个。三所有的组合中,不能有重复的,如(a,b,c,d,e)与(a,b,d,c,e)视为重复的组合。
解决方案
解决方案二:
结帖率:0.00%汗
解决方案三:
.。。。。。。。。。引用1楼yewuqing007的回复:
结帖率:0.00%汗
解决方案四:
引用2楼plplum的回复:
.。。。。。。。。。引用1楼yewuqing007的回复:结帖率:0.00%汗
................
解决方案五:
和你之前那个题差不多,改了改importjava.util.Vector;publicclassFindChars{privateVector<String>org=null;privateVector<Five>all=null;privateVector<Five>result=null;publicFindChars(){org=newVector<String>(0);result=newVector<Five>(0);for(inti=1;i<14;i++){org.add(""+i);}all=newVector<Five>(0);createFives();for(intj=0;j<346;j++){for(Fivefive:all){if(addToResult(five)){System.out.println(""+(j+1)+":"+five.getUID());break;}}}}publicbooleanaddToResult(Fivefive){for(Fivef:result){intsame=0;for(Stringnum:f.getNums()){if(five.getNums().contains(num)){same++;if(same>=3){returnfalse;}}}}result.add(five);if(result.size()>6){result.remove(0);}all.remove(five);returntrue;}privatevoidcreateFives(){Fivefive;for(inti1=1;i1<10;i1++){for(inti2=i1+1;i2<11;i2++){for(inti3=i2+1;i3<12;i3++){for(inti4=i3+1;i4<13;i4++){for(inti5=i4+1;i5<14;i5++){five=newFive(""+i1,""+i2,""+i3,""+i4,""+i5);all.add(five);}}}}}}publicstaticfinalvoidmain(Stringarg[]){FindCharsxxx=newFindChars();}classFive{privateVector<String>nums=null;privateStringUID=null;publicFive(){nums=newVector<String>(0);}publicFive(Stringarg1,Stringarg2,Stringarg3,Stringarg4,Stringarg5){nums=newVector<String>(0);nums.add(arg1);nums.add(arg2);nums.add(arg3);nums.add(arg4);nums.add(arg5);}publicVector<String>getNums(){returnnums;}publicStringgetUID(){if(UID==null&&nums.size()==5){UID="";for(Stringnum:nums){switch(Integer.valueOf(num)){case1:UID+="a"+".";break;case2:UID+="b"+".";break;case3:UID+="c"+".";break;case4:UID+="d"+".";break;case5:UID+="e"+".";break;case6:UID+="f"+".";break;case7:UID+="g"+".";break;case8:UID+="h"+".";break;case9:UID+="i"+".";break;case10:UID+="j"+".";break;case11:UID+="k"+".";break;case12:UID+="l"+".";break;case13:UID+="m"+".";break;}}}returnUID;}}}