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의 유전학에 대한 명확한 문서와 자습서가 없는 한 사용자에게 유전학에 대한 깊은 지식을 요구하는 것은 조롱입니다. 또한 구현이 엄청나게 많을 수 있으므로 유전학에 대한 깊은 지식이 있다고 해서 효과적인 최적화가 보장되는 것은 아닙니다.