クイックコンビネーション配列アルゴリズム

1432 ワード


---どのようにして整数の数列から、このサブセットの整数と所定のターゲット値に等しくなるように、サブセットを迅速に検索しますか?
この問題を解決するアルゴリズムの核心は,整数集合のサブ集合を迅速に遍歴することである.
一般的な実際の問題との有効な結合,例えば財務照合などの問題を考慮して,アルゴリズムは全数のサブ集合を低から高まで順次遍歴する.
コアの再帰遍歴関数のソースコードは次のとおりです.
int[] a=new int[100];    //          
int[] iCC=new int[100];//   100   
string sumV;                    //          

void comb(int m,/*         */

int k,/*       */

int DD,/*     */

int[] icc/*         */)
{
    int i,j;
    for (i=m;i>=k;i--)
    {
        a[k]=i;
        if (k > 1)
        {
            comb(i - 1, k - 1, DD, icc);//  
        }
        else
       {
            int dd = 0;
            for (j = a[0]; j > 0; j--)
            {
                dd += icc[a[j] - 1];
            }
            if (DD == dd)   //  
            {
                for (j = a[0]; j > 1; j--)
                {
                    sumV += string.Format("{0},", icc[a[j] - 1]);
                }
                if (j == 1)
                {
                    sumV += string.Format("{0}", icc[a[j] - 1]);
                }
                sumV += "\r
"; } } } }

最後に適切な操作インタフェースコードを追加し、柔軟に応用すればよい.
【その他のリソース】
翻訳:Sql ServerからMySQLへデータを移植する
VBScriptによるSQLタスクの自動化
OracleとSQL Serverのデータ相互運用性(3)
Oracleドライバの比較–(2)
OracleとSQL Serverのデータ互換性(1)
【書籍】人工知能
ファイルロックメカニズムによるサーバプログラムの自己起動