アルゴリズムの最適化 - ページ 9 12345678910 新しいコメント Aleksey Mavrin 2020.02.29 21:18 #81 Andrey Dik: ええ、その通りです。 が、同じ文字に同じ時刻の刻みがあることが多く、1ミリ秒に数回刻みがある場合 そこで論理に行き詰まるんです。 現実的には、最悪のケースを想定しておく必要があるだろう。 Andrey Dik 2020.07.12 18:57 #82 StartNからEndNまでの数字があります。 それぞれのCountNを組み合わせて作る必要があります。 このスクリプトは、3の組み合わせの数字の数だけ書きました。 input int StartN = 0; input int EndN = 1; input int CountN = 5; void OnStart() { string str = ""; //уровень 0 for (int i = StartN; i <= EndN; i++) { //str = StringSubstr (str, 0, 0); //str += (string)i; str = (string)i; //уровень 1 for (int k = StartN; k <= EndN; k++) { str = StringSubstr (str, 0, 1); str += (string)k; //уровень 2 for (int l = StartN; l <= EndN; l++) { str = StringSubstr (str, 0, 2); str += (string)l; Print (str); } } } } を出力するものです。 2020.07.12 21:48:47.763 sProbCandlComb XAUUSD...,H4: 111 2020.07.12 21:48:47.763 sProbCandlComb XAUUSD..,H4: 110 2020.07.12 21:48:47.763 sProbCandlComb XAUUSD...,H4: 101 2020.07.12 21:48:47.762 sProbCandlComb XAUUSD..,H4: 100 2020.07.12 21:48:47.762 sProbCandlComb XAUUSD...,H4: 011 2020.07.12 21:48:47.762 sProbCandlComb XAUUSD...,H4: 010 2020.07.12 21:48:47.762 sProbCandlComb XAUUSD...,H4: 001 2020.07.12 21:48:47.762 sProbCandlComb XAUUSD...,H4: 000 迷っているのですが、CountNを指定して動作させるにはどうしたらいいのでしょうか? Optimisation of algorithms. Not the Grail, just Morse code Aliaksandr Hryshyn 2020.07.12 19:12 #83 数値の2進数表現... Andrey Dik 2020.07.12 19:18 #84 Aliaksandr Hryshyn:数値の2進数表現... ということではなく、0から1までのパラメータを取っただけです。 0;2]を取る。 を取得します。 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 222 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 221 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 220 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 212 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 211 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 210 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 202 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 201 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 200 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 122 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 121 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 120 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 112 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 111 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 110 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 102 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 101 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 100 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 022 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 021 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 020 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 012 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 011 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 010 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 002 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 001 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 000 Optimisation of algorithms. Weekly performance Total leaders Igor Makanu 2020.07.12 19:34 #85 Andrey Dik:StartNからEndNまでの数字があります。それぞれのCountNの組み合わせを作る必要があります。とても困っています、CountNを指定した数で動作させるにはどうしたらいいのでしょうか? 以前にもやったことがあると思うのですが、こんなトピックがあります。 https://www.mql5.com/ru/forum/335077 Aliaksandr Hryshyn 2020.07.12 19:48 #86 Andrey Dik:ということではなく、パラメータを0から1まで包括的に取っただけです。を取る [0;2] 。を取得します。 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 222 2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 221 ... つまり、問題は、メインループの数を別の数体系に変換することと、StartNに対する補正に行き着くわけです Andrey Dik 2020.07.12 20:34 #87 Aliaksandr Hryshyn:つまり、問題は、メインループの数を別の数体系に変換することと、StartNに対する補正に行き着くわけです コードを教えてください。 Andrey Dik 2020.07.12 20:36 #88 Igor Makanu:以前にもやったと思いますが、こちらのスレッドでhttps://www.mql5.com/ru/forum/335077 このコードですべてがうまくいくわけではありませんが、私が必要としているもののようです、修正してここに掲載します。 このコードでは、全長の組み合わせが生成されません。 Andrey Dik 2020.07.12 22:32 #89 Igor Makanu:以前にもやったと思いますが、こちらのスレッドでhttps://www.mql5.com/ru/forum/335077 私が必要とするものは得られなかった。このコードには目的がはっきりしないループが多すぎる。 私の解決策はこれです。 #property script_show_inputs //--- input parameters input int StartN = 0; input int EndN = 1; input int CountN = 3; void OnStart () { string base []; //алгоритм сочетаний без повторений CombinationGenerator (StartN, EndN, CountN, base); //выведем полученные комбинации в принт for (int i = 0; i < ArraySize (base); i++) Print (base [i]); } string CreateString (int &base []) { string s = ""; for (int i = 0; i < ArraySize (base); i++) s += (string)base [i]; return s; } //Алгоритм сочетаний без повторений void CombinationGenerator (int startN, int endN, int rowLen, string &base []) { ArrayResize (base, (int)pow (EndN - StartN + 1, CountN)); int comb []; ArrayResize (comb, CountN); ArrayInitialize (comb, StartN); string str = ""; int pos = 0; base [pos] = CreateString (comb); bool flag = true; while (flag && !IsStopped ()) { for (int l = 0; l < CountN; l++) { if (comb [l] + 1 <= EndN) { comb [l] += 1; pos++; base [pos] = CreateString (comb); break; } else { if (l == CountN - 1) flag = false; comb [l] = StartN; } } } } できるだけ少ない反復でこのコードを想定しています。 の結果は、[0;1]の数字で、3行目の数字になります。 2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 111 2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 011 2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 101 2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 001 2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 110 2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 010 2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 100 2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 000 の結果が、4行目の番号を持つ値[0;2]の場合。 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2222 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1222 2020.07.13 01:22:50.851 sProbCandlComb EURUSD.,M5: 0222. 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2122 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1122 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0122 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2022 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1022 2020.07.13 01:22:50.851 sProbCandlComb EURUSD.,M5: 0022. 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2212 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1212 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0212 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2112 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1112 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0112 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2012 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1012 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0012 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2202 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1202 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0202 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2102 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1102 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0102 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2002 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1002 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0002 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2221 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1221 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0221 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2121 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1121 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0121 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2021 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1021 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0021 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2211 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1211 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0211 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2111 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1111 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0111 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2011 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1011 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0011 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2201 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1201 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0201 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2101 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1101 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0101 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2001 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1001 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0001 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2220 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1220 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0220 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2120 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1120 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0120 2020.07.13 01:22:50.851 sProbCandlComb EURUSD.,M5: 2020. 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1020 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0020 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2210 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1210 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0210 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2110 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1110 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0110 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2010 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1010 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0010 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2200 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1200 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0200 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2100 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1100 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0100 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2000 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1000 2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0000 アルゴリズムのロジックは、桁に1を加え、その桁に最小値として設定した数以上が含まれていれば次の桁に進み、次の桁で「0」がなければ最初の桁に戻る、というシンプルで計算ルールと同じものです。 確かに、私の持っている桁は右側ではなく左側ですが、まあ、おっと。 0000 0001 0010 0011 0100 0101 .... など 再帰を使えばもっときれいなコードができるかもしれませんが、高速化は望めません。 Optimisation of algorithms. Igor Makanu 2020.07.12 22:56 #90 Andrey Dik: あなたの例は、組み合わせではなく、繰り返しのない順列です。 で、私の例は、繰り返しのない組み合わせです。 12345678910 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ええ、その通りです。
現実的には、最悪のケースを想定しておく必要があるだろう。
StartNからEndNまでの数字があります。
それぞれのCountNを組み合わせて作る必要があります。
このスクリプトは、3の組み合わせの数字の数だけ書きました。
を出力するものです。
2020.07.12 21:48:47.763 sProbCandlComb XAUUSD...,H4: 111
2020.07.12 21:48:47.763 sProbCandlComb XAUUSD..,H4: 110
2020.07.12 21:48:47.763 sProbCandlComb XAUUSD...,H4: 101
2020.07.12 21:48:47.762 sProbCandlComb XAUUSD..,H4: 100
2020.07.12 21:48:47.762 sProbCandlComb XAUUSD...,H4: 011
2020.07.12 21:48:47.762 sProbCandlComb XAUUSD...,H4: 010
2020.07.12 21:48:47.762 sProbCandlComb XAUUSD...,H4: 001
2020.07.12 21:48:47.762 sProbCandlComb XAUUSD...,H4: 000
迷っているのですが、CountNを指定して動作させるにはどうしたらいいのでしょうか?
数値の2進数表現...
数値の2進数表現...
ということではなく、0から1までのパラメータを取っただけです。
0;2]を取る。
を取得します。
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 222
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 221
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 220
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 212
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 211
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 210
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 202
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 201
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 200
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 122
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 121
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 120
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 112
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 111
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 110
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 102
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 101
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 100
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 022
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 021
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 020
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 012
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 011
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 010
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 002
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 001
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 000
StartNからEndNまでの数字があります。
それぞれのCountNの組み合わせを作る必要があります。
とても困っています、CountNを指定した数で動作させるにはどうしたらいいのでしょうか?
以前にもやったことがあると思うのですが、こんなトピックがあります。
https://www.mql5.com/ru/forum/335077
ということではなく、パラメータを0から1まで包括的に取っただけです。
を取る [0;2] 。
を取得します。
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 222
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD...,H4: 221
...
つまり、問題は、メインループの数を別の数体系に変換することと、StartNに対する補正に行き着くわけです
つまり、問題は、メインループの数を別の数体系に変換することと、StartNに対する補正に行き着くわけです
コードを教えてください。
以前にもやったと思いますが、こちらのスレッドで
https://www.mql5.com/ru/forum/335077
このコードですべてがうまくいくわけではありませんが、私が必要としているもののようです、修正してここに掲載します。
このコードでは、全長の組み合わせが生成されません。
以前にもやったと思いますが、こちらのスレッドで
https://www.mql5.com/ru/forum/335077
私が必要とするものは得られなかった。このコードには目的がはっきりしないループが多すぎる。
私の解決策はこれです。
できるだけ少ない反復でこのコードを想定しています。
の結果は、[0;1]の数字で、3行目の数字になります。
2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 111
2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 011
2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 101
2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 001
2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 110
2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 010
2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 100
2020.07.13 01:21:41.037 sProbCandlComb EURUSD...,M5: 000
の結果が、4行目の番号を持つ値[0;2]の場合。
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2222
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1222
2020.07.13 01:22:50.851 sProbCandlComb EURUSD.,M5: 0222.
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2122
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1122
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0122
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2022
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1022
2020.07.13 01:22:50.851 sProbCandlComb EURUSD.,M5: 0022.
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2212
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1212
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0212
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2112
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1112
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0112
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2012
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1012
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0012
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2202
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1202
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0202
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2102
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1102
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0102
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2002
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1002
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0002
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2221
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1221
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0221
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2121
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1121
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0121
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2021
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1021
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0021
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2211
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1211
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0211
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2111
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1111
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0111
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2011
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1011
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0011
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2201
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1201
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0201
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2101
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1101
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0101
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2001
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1001
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0001
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2220
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1220
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0220
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2120
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1120
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0120
2020.07.13 01:22:50.851 sProbCandlComb EURUSD.,M5: 2020.
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1020
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0020
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2210
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1210
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0210
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2110
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1110
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0110
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2010
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1010
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0010
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2200
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1200
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0200
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2100
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1100
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0100
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 2000
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 1000
2020.07.13 01:22:50.851 sProbCandlComb EURUSD...,M5: 0000
アルゴリズムのロジックは、桁に1を加え、その桁に最小値として設定した数以上が含まれていれば次の桁に進み、次の桁で「0」がなければ最初の桁に戻る、というシンプルで計算ルールと同じものです。
確かに、私の持っている桁は右側ではなく左側ですが、まあ、おっと。
0000
0001
0010
0011
0100
0101
....
など
再帰を使えばもっときれいなコードができるかもしれませんが、高速化は望めません。
あなたの例は、組み合わせではなく、繰り返しのない順列です。
で、私の例は、繰り返しのない組み合わせです。