Optimização dos algoritmos. - página 10 1...345678910 Novo comentário Andrey Dik 2020.07.12 23:36 #91 Igor Makanu:o seu exemplo não é uma combinação, mas uma permutação sem repetição E o meu exemplo é uma conjunção sem repetição. Oh, então é isso que é suposto ser? 0 1 01 11 001 101 011 ... Então o código não será muito mais complicado para si, mas definitivamente não precisa de tantos loops. Igor Makanu 2020.07.12 23:44 #92 Andrey Dik:Oh, então era esse o plano? Sim Tive de gerar nomes de ficheiros no testador, cada ficheiro é um parâmetro de estratégia e ao gerar combinações sem repetições todas as combinações de TS são combinadas, na última página do tópico está o código que o faz e o seu problema é fácil de pesquisar no Google "permutações sem repetições repetições s++" MetaTrader 5 Strategy Tester: Erros, bugs, perguntas Por favor, diga-nos sua Andrey Dik 2020.07.12 23:49 #93 Igor Makanu: e o seu problema é facilmente pesquisado no Google "permutações sem recorrência C++". Procurei-o no Google, mas a maior parte das vezes não surgem soluções universais. Mas é muito mais interessante e informativo fazer e descobrir por si próprio). Aliaksandr Hryshyn 2020.07.13 15:45 #94 Andrey Dik:posso ter o código? input int StartN = 5; input int EndN = 7; input int CountN = 4; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { for(int i1=0; i1<30; i1++) { Print(CombinationGenerator(i1,StartN,EndN,CountN)); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ string CombinationGenerator(uint iteration_index,int startN, int endN, int countN) { string result; int base=endN-startN+1; uint ml=base; for(int i1=0; i1<countN; i1++) { uint md=iteration_index%base; result=result+string(md+startN); iteration_index=(iteration_index-md)/base; } return result; } É simples: 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 5555 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 6555 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 7555 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 5655 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 6655 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 7655 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 5755 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 6755 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 7755 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 5565 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 6565 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 7565 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 5665 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 6665 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 7665 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 5765 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 6765 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 7765 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 5575 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 6575 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 7575 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 5675 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 6675 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 7675 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 5775 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 6775 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 7775 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 5556 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 6556 2020.07.13 16:45:27.456 test3 (EURUSD,M1) 7556 Andrey Dik 2020.07.13 17:10 #95 Aliaksandr Hryshyn:É simples: Fixe, obrigado! Vou dar uma vista de olhos. 1...345678910 Novo comentário
o seu exemplo não é uma combinação, mas uma permutação sem repetição
E o meu exemplo é uma conjunção sem repetição.
Oh, então é isso que é suposto ser?
0
1
01
11
001
101
011
...
Então o código não será muito mais complicado para si, mas definitivamente não precisa de tantos loops.
Oh, então era esse o plano?
Sim
Tive de gerar nomes de ficheiros no testador, cada ficheiro é um parâmetro de estratégia
e ao gerar combinações sem repetições todas as combinações de TS são combinadas, na última página do tópico está o código que o faz
e o seu problema é fácil de pesquisar no Google "permutações sem repetições repetições s++"
e o seu problema é facilmente pesquisado no Google "permutações sem recorrência C++".
Procurei-o no Google, mas a maior parte das vezes não surgem soluções universais.
Mas é muito mais interessante e informativo fazer e descobrir por si próprio).
posso ter o código?
É simples:
É simples:
Fixe, obrigado! Vou dar uma vista de olhos.