MT 개발자를 위한 것이 아닙니다! INIT_PARAMETERS_INCORRECT를 대체하는 방법? - 페이지 5

 
Сергей Таболин :

이제 요점으로. 합법적인 체인이 있는 파일을 만들었습니다. 지금 그것을 사용하는 방법? onTester, frames 을 통해 필요한 것 같은데... 설명서를 보니 뭔가 뭉클해 지는군요. 나는 그것을 처리하는 방법을 알아낼 수 없습니다.

배열로 읽고 데이터를 가져오는 아이디어가 있습니다 ...

나는 이 문제가 분석적으로 가장 잘 풀린다고 생각한다. 인덱스를 알고 이동 중에도 체인을 생성해야 합니다. Google "조합. 게재위치". 거기에서 파스칼의 삼각형을 통해 계산되는 것 같습니다. 적어도 이것이 내가 조합 찾기 문제를 해결한 방법입니다. 배치에 대해서도 비슷한 것이 있을 것이라고 생각합니다.

그리고 일반적으로 당신의 임무의 목적은 나에게 그다지 명확하지 않습니다. 체인에서 기능을 반복할 수 없는 이유는 무엇입니까?

[삭제]  
Alexey Navoykov :

그리고 일반적으로 당신의 임무의 목적은 나에게 그다지 명확하지 않습니다. 체인에서 기능을 반복할 수 없는 이유는 무엇입니까?

그렇다면:

  • 열하나
  • 22

그럼, 무엇을 위해?

그렇다면:

  • 121
그러면 결국 결과는 21과 같을 것입니다. 그리고 체인 21은 이 결과를 반복할 것입니다. 복제, 원칙적으로 불필요한 실행을 위한 추가 시간 ...

 
Сергей Таболин :

그렇다면:

  • 열하나
  • 22

그럼, 무엇을 위해?

그렇다면:

  • 121
그러면 결국 결과는 21과 같을 것입니다. 그리고 체인 21은 이 결과를 반복할 것입니다. 복제, 원칙적으로 불필요한 실행을 위한 추가 시간 ...

나는 당신의 기능이 순차적으로 처리된다고 생각했습니다. 첫 번째 함수의 계산 결과는 두 번째 함수의 입력으로 전달되는 식입니다. 그리고 나서 모든 것이 독립적으로 작동한다는 것이 밝혀졌습니다. chtol? 그러면 일반적으로 거기에서 무엇을 최적화하는지 명확하지 않습니다.

 
Сергей Таболин :

합법적인 체인이 있는 파일을 만들었습니다. 지금 그것을 사용하는 방법? onTester, 프레임을 통해 필요하다고 생각합니다 ...

여기 프레임은 측면이 없습니다. tester_file 또는 COMMON을 통해 전달하십시오. 여기에 작업 예 .

 
Сергей Таболин :

건축에 관한 것이 아닙니다. 요점은 기능 집합과 적용 순서입니다.

프로그램에서 이러한 기능의 역할에 대한 자세한 정보를 제공하십시오(이것이 문제의 아키텍처임).

[삭제]  

시장 진입 조건을 결정하는 기능.

레코드 번호로 파일에서 체인을 읽습니다. 유전학을 시작했습니다. 그것은 작동하고 맹세하지 않는 것 같습니다.

여기에 질문이 있습니다. 사슬이 어떤 식 으로든 체계화되지 않았습니다. 유전학이 최선의 선택을 찾을 수 있습니까? 그녀는 모든 옵션을 보지 않습니다. 결과 파일을 먼저 정렬할 가치가 있습니까? 그것을 하는 방법?

[삭제]  

정렬된 텍스트 파일입니다. 이제 체인이 있는 문자열을 읽고 구성 요소로 분할 하고 배열을 채워야 합니다 .

근데 컴파일하면 바로 경고가 뜨는데 숙취로 이해가 안가네요...

 //+------------------------------------------------------------------+
void OnTick ()
{
//---
//--- считать цепочки из файла
   int chain[ 6 ];
   string    filenameF   = "KR\\func_KrL_sort.txt" ;
   string    filename    = "KR\\func_KrL_sort.bin" ;
   string    str, str_chain[];
   if ( FileIsExist (filenameF, FILE_COMMON ))
   {
       int filehandleF = FileOpen (filenameF, FILE_READ | FILE_TXT | FILE_COMMON );
       if (filehandleF != INVALID_HANDLE )
      {
         for ( int f = 0 ; f <= 1953 ; f++)
         {
             ArrayInitialize (chain, 0 );
             FileReadString (filehandleF,str); // implicit conversion from 'string' to 'number'
             Print (str);
             StringSplit (str, "," ,str_chain);  // implicit conversion from 'string' to 'number'
             for ( int i = 0 ; i <= 5 ; i++)
            {
               ArrayInitialize (chain, 0 );
               chain[i] = ( int ) StringToInteger (str_chain[i]); // array out of range
               Print ( string (chain[ 0 ])+ "," + string (chain[ 1 ])+ "," + string (chain[ 2 ])+ "," + string (chain[ 3 ])+ "," + string (chain[ 4 ])+ "," + string (chain[ 5 ]));
            }
         }
         
         FileClose (filehandleF);
         ExpertRemove ();
      }
   }
}
//+------------------------------------------------------------------+

그리고 범위를 벗어난 오류 배열 을 실행할 때

텍스트 파일 내용:

 1 , 0 , 0 , 0 , 0 , 0
1 , 2 , 0 , 0 , 0 , 0
1 , 2 , 3 , 0 , 0 , 0
1 , 2 , 3 , 4 , 0 , 0
1 , 2 , 3 , 4 , 5 , 0
1 , 2 , 3 , 4 , 5 , 6
1 , 2 , 3 , 4 , 6 , 0
1 , 2 , 3 , 4 , 6 , 5
1 , 2 , 3 , 5 , 0 , 0
1 , 2 , 3 , 5 , 4 , 0
...........
[삭제]  

리메이크:

 //+------------------------------------------------------------------+
void OnTick ()
{
//---
//--- считать цепочки из файла
   int chain[ 6 ];
   string    filenameF   = "KR\\func_KrL_sort.txt" ;
   string    filename    = "KR\\func_KrL_sort.bin" ;
   string    str, str_chain;
   if ( FileIsExist (filenameF, FILE_COMMON ))
   {
       int filehandleF = FileOpen (filenameF, FILE_READ | FILE_TXT | FILE_COMMON );
       if (filehandleF != INVALID_HANDLE )
      {
         for ( int f = 0 ; f < 1953 ; f++)
         {
             ArrayInitialize (chain, 0 );
            str = FileReadString (filehandleF);
             //Print(str); // этот рисует всё как надо
             for ( int i = 0 , p = 0 ; i <= 5 ; i++, p += 2 )
            {
               str_chain   = StringSubstr (str,p, 1 );
               chain[i]    = ( int ) StringToInteger (str_chain);
            }
         }
         
         FileClose (filehandleF);
         ExpertRemove ();
      }
   }
}
//+------------------------------------------------------------------+
 
Сергей Таболин :

여기에 질문이 있습니다. 사슬이 어떤 식 으로든 체계화되지 않았습니다. 유전학이 최선의 선택을 찾을 수 있습니까? 그녀는 모든 옵션을 보지 않습니다. 결과 파일을 먼저 정렬할 가치가 있습니까? 그것을 하는 방법?

물론 그는 그것을 찾지 못할 것입니다. 어떻게 정렬하지 않습니다. "유전자"가 무엇인지 이해하려면 먼저 유전자 알고리즘 의 본질을 이해해야 합니다.

첫 번째 게시물(" 나는 사용자로서 결과를 얻고 싶지만 그것이 작동하는 방식은 나에게 짙은 보라색입니다." )에서 언급한 귀하의 접근 방식은 이 경우 절대적으로 잘못된 것입니다.

 
Alexey Navoykov :

첫 번째 게시물(" 나는 사용자로서 결과를 얻고 싶지만 그것이 작동하는 방식은 나에게 짙은 보라색입니다." )에서 언급한 귀하의 접근 방식은 이 경우 절대적으로 잘못된 것입니다.

그러나 그런 종류의 아무것도. MK의 유전학에 대한 명확한 문서와 자습서가 없는 한 사용자에게 유전학에 대한 깊은 지식을 요구하는 것은 조롱입니다. 또한 구현이 엄청나게 많을 수 있으므로 유전학에 대한 깊은 지식이 있다고 해서 효과적인 최적화가 보장되는 것은 아닙니다.