この記事の例は、参照用のJava配置と構成アルゴリズムの特定のコードを共有しています。特定のコンテンツは次のとおりです
パッケージbeanutil; Import java.util.arraylist; Import Java.util.list; Import com.work.core.exception.ourexception;/** *統計アルゴリズム//このプログラムのアイデアは配列を開くことであり、その添え字は1からmの数値を表します。アレイ要素の値は、その添え字を示すために1です//表される数値が選択され、0の場合は選択されません。 //最初に初期化し、配列の最初のn要素を1に設定し、最初の組み合わせが最初のn番号であることを示します。 //次に、アレイ要素値の「10」の組み合わせを左から右にスキャンし、最初の「10」の組み合わせを見つけて//「01」の組み合わせに変換し、左側のすべての「1」をアレイの左端に移動します。 //最初の「1」が配列のMN位置に移動する場合、つまりすべてのn "1S"が右端に移動すると、//最後の組み合わせに//する必要があります。 //たとえば、5:// 1 1 0 0 // 1,2,3 // 1 0 1 0 // 1,2,4 // 1 0 1 1 0 // 1,3,4 // 0 1 1 1 0 // 2,3,4 // // 1,4,5 // 0 1 0 1 1 1 // 2,4,5 // 0 0 1 1 s.printanythree(); } / ** * * / public void printanythree(){int [] num = new int [] {1,2,3,4,5,6}; print(combine(num、3)); } / ** * n番号からm番号を選択 * @param a * @param m * @return * / public list combine(int [] a、int m){int n = a.length; if(m> n){throw new OurException( "エラー!"+n+"array a。"+m+"が「+2+" !!! "より大きい+m+"); } list result = new ArrayList(); int [] bs = new int [n]; for(int i = 0; i <n; i ++){bs [i] = 0; } //(int i = 0; i <m; i ++){bs [i] = 1; } boolean flag = true; boolean tempflag = false; int pos = 0; int sum = 0; //最初に最初の10の組み合わせを見つけてから01になり、同時にすべての1を左側のすべての1を配列の左側に移動します{sum = 0; pos = 0; tempflag = true; result.add(print(bs、a、m)); for(int i = 0; i <n-1; i ++){if(bs [i] == 1 && bs [i+1] == 0){bs [i] = 0; BS [I+1] = 1; pos = i;壊す; }} //左側のすべてを配列の左側に移動します(int i = 0; i <pos; i ++){if(bs [i] == 1){sum ++; }} for(int i = 0; i <pos; i ++){if(i <sum){bs [i] = 1; } else {bs [i] = 0; }} //すべての1が配列の右側に移動したかどうかを確認します(int i = nm; i <n; i ++){if(bs [i] == 0){tempflag = false;壊す; }} if(tempflag == false){flag = true; } else {flag = false; }} while(flag); result.add(print(bs、a、m));返品結果; } private int [] print(int [] bs、int [] a、int m){int [] result = new int [m]; int pos = 0; for(int i = 0; i <bs.length; i ++){if(bs [i] == 1){result [pos] = a [i]; pos ++; }} return result; } private void print(list l){for(int i = 0; i <l.size(); i ++){int [] a =(int [])l.get(i); for(int j = 0; j <a.length; j ++){system.out.print(a [j]+"/t"); } system.out.println(); }}}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。