Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не вопрос.
Только вижу, что Вы меня за идиота считаете, а зря.
Я буду только рад, если своими руками и глазами разберётесь, что нет обмана.
Какую фразу вы зашифровали?
"QbgpsGPELKivNySHxdBjAJKudnJtvQDXtBlfKQBuUjFyovbSejUiPaByUjmMWHEGIHRqDCHbMDPdnRRcEMuXzCoBvifSQAdcbopwGBiDbECxbrzJLZTkOYdWdEmUhnelievPauljpmAmvbUnDuBVPvejBBBTbmqLatRbuPgjUMNSQXBVviWULZjslNLgFKfINJFGzOOusXnBDeCpthgOmlTEUPxQyrUOTKhtySNODxsqEtLjPvxceGodZRqWqspsEUQXeaNPeEQJNmaVOoMzYGjfONlPPTEpUtqPbigcrPlpCBxUKLFnHgAENIzDExGCcBoKdkTKXQgorapGkuGPrzPWjsSjThwffRjOYxFyQCWZhytILMltScNKgSuZUVlgRdWyaLFLGEwHVHJiuqOgxblyTshFTLPOpJQFZKNpPmSPghRsKxZyYIjxzoxyCWEqRpylkGHLccmQoGGdqHyLkfNVrMHViujGBpBpzFWASkeuvHXINEnVyAKIzCRabWrELmTEknYoWHNFDkteLimAJVvgrlgMvnwkCTthjHMPPxZNmqFulCkmHSxqaAXRHfYetIpvQmQPkBxDcVXlCzqLmqzQUpIWBgfTuNmIYbyhKqJBcrVmkDJRuNsNIOYXUVHPaclvEVgqDGeZrYemBXMQBBaTMlBHfCZJUfIGCmOQsrzHcEmdcermCYDyqkQEcBnUzkrypSGMwGgXoUoIgfmatuMYTxnKeqiWcqxcQaxNtPDOkgMAsRdRBcXQHvIMHTDrBHFlCvngcvpnXWoLFPSnvGLbEmJNFcwMhbllYogKDmltLUNwymaJenKnYOVhviXqYFkEFkoTQlFxJEeWUFRoBeLLrdQICasUmgOiWoGgxZegCZVAaBCGmhkhYtmqWqGPBGFJBcHcWWmSCFwDmrkCPxnWvJxbDoNYFNKhtzanuEawUpeEPgpmLZGZaFezWCZwExZWfDbBrLlaTyrGGfLMehhrqbImcjiPOQPKmgIF";
Это случайно генерированная фраза с буквами из алфавита, что бы обеспечит возможность 100% -ной рашифровки по просьбе FxSaber.
Знаю, что рандом. Какая целевая строка?
Или вы это не понимаете? Вы куда фитнес вести собираетесь?
Все гораздо хуже для вас. Особенно, зная предысторию вопроса и некоторых людей.
Знаю, что рандом. Какая целевая строка?
Или вы это не понимаете? Вы куда фитнес вести собираетесь?
Фитнес - это количество совпавших букв. ФФ возвращает количество совпавших букв.
Алгоритм (или Ваш тестовый советник) отправляет массив с с порядковыми номерами из алфавита в ФФ, ФФ смотрит, сколько совпало букв и возвращает количество совпадений. В это и трудность этой задачи - известно количество совпадений но не известно места совпадений.
Фитнес - это количество совпавших букв.
Совпавших с чем?
Код, написанный вами - полный треш. Код вы упорно не представляли даже сейчас. Целевую строку вы типа не додумываетесь сообщить.
Ну должен же доблестный исследователь сам все перекопать в неких комментах в форуме и найти таки ту искомую строку?
Или все-таки автор реально почувствовал слив и теперь тянет время и не хочет открыто провести тесты?
Алгоритм (или Ваш тестовый советник) отправляет массив с с порядковыми номерами из алфавита в ФФ, ФФ смотрит, сколько совпало букв и возвращает количество совпадений. В это и трудность этой задачи - известно количество совпадений но не известно места совпадений.
Дайте целевую расшифрованную строку и не пытайтесь навертеть лишнего на столь простую задачу.
Дайте целевую расшифрованную строку и не пытайтесь навертеть лишнего на столь простую задачу.
zя же дал код ФФ несколько минут назад:
#property strict
//#include <Graphics/Graphic.mqh>
int countRuns = 0;
string Key = "A;a;B;b;C;c;D;d;E;e;F;f;G;g;H;h;I;i;J;j;K;k;L;l;M;m;N;n;O;o;P;p;Q;q;R;r;S;s;T;t;U;u;V;v;W;w;X;x;Y;y;Z;z";
string KeyArray [];
int KeyLen = 0;
string Text = "SptstmLEjXhdESqotbRQbmsYKkJTZiOHBEenIbGqLHwxqfWTok";
int TextLen = 0;
//+------------------------------------------------------------------+
int GetParamCount () export
{
TextLen = StringLen (Text);
KeyLen = StringSplit (Key, StringGetCharacter (";", 0), KeyArray);
return (TextLen);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void GetParamProperties (double &min, double &max, double &step) export
{
min = 0.0;
max = KeyLen - 1;
step = 1.0;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
double FF (double ¶m []) export
{
countRuns++;
int sizeArray = ArraySize (param);
if(sizeArray != TextLen)
return (0.0);
int ffVolue = 0;
for(int i = 0; i < TextLen; i++)
{
if(GetCode (param [i]) == StringSubstr (Text, i, 1))
ffVolue++;
}
// сохранение результатов
if(CompareBests (ffVolue))
SaveResults (BestResults, ffVolue);
SaveResults (AllResults, ffVolue);
return (double(ffVolue));
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int GetCountRunsFF () export
{
return (countRuns);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void SaveResultsToFiles () export
{
string str = "";
int handle = FileOpen ("AllResults.csv", FILE_WRITE | FILE_CSV | FILE_ANSI, ";");
if(handle != INVALID_HANDLE)
{
for(int i = 0; i < ArraySize (AllResults); i++)
str += (string)AllResults [i] + ";" + "\n";
FileWriteString (handle, str, -1);
FileClose (handle);
}
else
{
Print ("Ошибка записи в файл AllResults.csv");
}
str = "";
handle = FileOpen ("BestResults.csv", FILE_WRITE | FILE_CSV | FILE_ANSI, ";");
if(handle != INVALID_HANDLE)
{
for(int i = 0; i < ArraySize (BestResults); i++)
str += (string)BestResults [i] + ";" + "\n";
FileWriteString (handle, str, -1);
FileClose (handle);
}
else
{
Print ("Ошибка записи в файл BestResults.csv");
}
//ResourceSave(GraphPlot(AllResults, CURVE_LINES), "AllResults.bmp");
//ResourceSave(GraphPlot(BestResults,CURVE_LINES), "BestResults.bmp");
}
//+------------------------------------------------------------------+
double AllResults []; // все результаты ФФ
double BestResults []; // лучшие результаты ФФ
double BestResult = -DBL_MAX; //последний лучший результат
//+------------------------------------------------------------------+
bool CompareBests (double Res)
{
if(Res > BestResult)
{
BestResult = Res;
return (true);
}
return (false);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void SaveResults (double &SavedResults [], double Res)
{
const int size = ArraySize (SavedResults);
ArrayResize (SavedResults, size + 1, 10000);
SavedResults [size] = Res;
return;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
string GetCode (double param)
{
int p = (int)MathRound (param);
if(p < 0)
p = 0;
if(p > KeyLen - 1)
p = KeyLen - 1;
return (KeyArray [p]);
}
//+------------------------------------------------------------------+
ключ
string Key = "A;a;B;b;C;c;D;d;E;e;F;f;G;g;H;h;I;i;J;j;K;k;L;l;M;m;N;n;O;o;P;p;Q;q;R;r;S;s;T;t;U;u;V;v;W;w;X;x;Y;y;Z;z";
Забудьте вы о своем коде и своей библиотеке. Она никому не нужна. Ключ ваш тоже не нужен. Ваш код вообще отключен от обсуждения.
Дайте целевую расшифрованную строку. А уж исходник метода ее нахождения я вам тут опубликую без игрищ в десятки страниц.
Сейчас выясняется, что вы не только фитнес заведомо нерабочий представили, так еще и целевую строку прячете.