주어진 요소의 배열 지우기 - 페이지 21 1...141516171819202122232425262728...30 새 코멘트 Konstantin Nikitin 2018.11.16 14:19 #201 어떻게 행동해야 할지 모르겠어 ArraySetAsSeries (array, true ); 마지막 버전에서도 그를 확인했습니다. 필요한 사람이 사용할 수 있습니다. 파일: ArrayDeleteValue.mq5 25 kb Konstantin Nikitin 2018.11.16 14:42 #202 Реter Konow : 권리. 그러나 제공된 알고리즘이 빈 공간을 남기지 않는다는 것을 어떻게 알 수 있습니까? 체크섬은 이것을 증명하지 않습니다. 요소의 수도 있습니다. 결국 이 함수는 배열의 크기가 조정되기 전의 요소를 계산합니다. 제시된 거의 모든 것에서 이것은 NULL로 요청을 보내 문제 없이 구현됩니다. 피터 코노우 : 알고리즘에 대한 또 다른 요구 사항이 있습니다. 즉, 불필요한 요소를 제거한 후 배열 내부에 요소를 올바르게 배치해야 합니다. 이 검사를 먼저 수행했어야 합니다. 다음으로 속도 테스트입니다. 무엇을 반환하는 코드에 설명이 있습니다. 혼합 배열이 있습니다. 다른 배열에 있습니다. PS 글쎄요. 내 기능에서 일부 수표가 등록되었지만 사용되지는 않습니다. 그러나 이 모든 것과 그 이상이 있습니다. Реter Konow 2018.11.16 14:56 #203 나는 참가자들의 전문성과 그들의 위치를 의심하지 않는다. 방금 체크섬 검사의 결함과 새 어레이에서 요소의 올바른 배열에 대한 추가 검증의 필요성을 지적했습니다. 이 모든 것이 맞다면 나는 당연히 끝에서 두 번째 자리를 차지했습니다. 내 연습에서는 특정 작업의 속도에 대해 거의 생각하지 않습니다. 나는 솔루션의 간결성과 명확성에 더 관심이 있습니다. 이 항목이 다음과 같이 나와 놀랐습니다. if (Arr[q]==val){deleted++; q--;} 느려질 수 있습니다. 그러나 알고리즘을 평가하는 기준을 하나 더 추가한다면 - 솔루션의 간결함 - 아마도 내가 첫 번째 위치에 있을 것입니다. 속도와 간결성이라는 두 가지 기준을 결합하고 알고리즘의 평균 점수를 계산하면 표에서 더 높은 자리를 차지할 것입니다. 그러나 Fedoseev의 버전은 내 것보다 훨씬 더 간결합니다. Nikolai Semko 2018.11.16 15:14 #204 Реter Konow : 그러나 알고리즘을 평가하는 기준을 하나 더 추가한다면 - 솔루션의 간결함 - 아마도 내가 첫 번째 위치에 있을 것입니다. 메인 루프의 버전: for ( int a1= 0 ; a1< ArraySize (Arr); a1++) { if (deleted)Arr[q]=Arr[q+deleted]; if (Arr[q]==val) { deleted++; q--; } q++; } 그리고 이것은 페도세바입니다: for (;i<sz;i++) { if (a[i]!=v) { a[j]=a[i]; j++; } } 두 옵션 모두 동일한 작업을 수행합니다. 누가 더 간결합니까? Реter Konow 2018.11.16 15:20 #205 Nikolai Semko : 메인 루프의 버전: 그리고 이것은 페도세바입니다: 두 옵션 모두 동일한 작업을 수행합니다. 누가 더 간결합니까? 그에게. 그는 대신 for ( int a1= 0 ; a1< ArraySize (Arr); a1++) for (;i<sz;i++) 이것은 더 간결합니다.)) Nikolai Semko 2018.11.16 15:27 #206 Реter Konow : 그에게. 그는 대신 이것은 더 간결합니다.)) 컴파일러와 동일합니다. 불필요한 Peter가 많기 때문에 가장 느리게 작동합니다(나는 주제의 첫 번째 옵션을 전혀 고려하지 않음) Fedoseev에는 주기의 한 패스에서 하나 의 수표, 하나 의 할당 및 하나 의 증분이 있습니다.(나는 주기를 구성할 때 검증과 증분을 고려하지 않습니다). 두 개의 검사, 두 변수의 합 하나 , 증분 세 개 , 할당 하나 가 있습니다. Aleksey Lebedev 2018.11.16 16:07 #207 for ( int a1= 0 ; a1< ArraySize (Arr); a1++) 컴파일러에 의한 최적화에 대한 모든 희망, 그렇지 않으면 ArraySize 가 각 반복에서 실행됩니다. Nikolai Semko 2018.11.16 16:13 #208 Aleksey Lebedev : 컴파일러에 의한 최적화에 대한 모든 희망, 그렇지 않으면 ArraySize가 각 반복에서 실행됩니다. 예, 컴파일러는 분명히 루프에서 배열 차원 이 변경되지 않으면 이 함수를 한 값으로 독립적으로 대체하여 이 함수를 한 번만 평가하는지 확인합니다. 어쨌든 이렇게 하면: const int size= ArraySize (Arr); for ( int a1= 0 ; a1<size; a1++) 함수의 실행 시간은 변경되지 않습니다. 따라서 더 간결하게 작성하려면 Peter가 한 것처럼 정확하게 작성하는 것이 좋습니다. :) 하지만 개인적으로 눈이 아프다는 데 동의합니다. 함수가 매번 호출될 것 같은 느낌. Aleksey Lebedev 2018.11.16 16:57 #209 Nikolai Semko : 하지만 개인적으로 눈이 아프다는 데 동의합니다. 함수가 매번 호출될 것 같은 느낌. imho 컴파일러에게 선택권을주지 않는 것이 좋습니다) 물어보자, if(count>6) { 배열 복사 6개 이상 - 과학적 찌르기의 방법으로 값을 얻었거나 어떤 정당성이 있습니까?) Nikolai Semko 2018.11.16 16:59 #210 Aleksey Lebedev : imho 컴파일러에게 선택권을주지 않는 것이 좋습니다) 물어보자, if(count>6) { 배열 복사 6개 이상 - 과학적 찌르기의 방법으로 값을 얻었거나 어떤 정당성이 있습니까?) 네, 바로 그 사람입니다. 과학적인 찌르기 방법. 사실, 내 관찰에 따르면 5에서 8까지입니다. 매번 이 숫자를 자동 조정하여 이 프로세스를 자동화할 수 있습니다. 실제로 다른 프로세서와 시스템에서 이 숫자는 다를 수 있습니다. 예를 들어 이 원칙에 따라 CCanvas 클래스의 ArrayCopy와 ArrayFill을 모두 변경하면 캔버스 속도에서 좋은 이득을 얻을 수 있습니다. 1...141516171819202122232425262728...30 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
마지막 버전에서도 그를 확인했습니다. 필요한 사람이 사용할 수 있습니다.
권리. 그러나 제공된 알고리즘이 빈 공간을 남기지 않는다는 것을 어떻게 알 수 있습니까? 체크섬은 이것을 증명하지 않습니다. 요소의 수도 있습니다. 결국 이 함수는 배열의 크기가 조정되기 전의 요소를 계산합니다.
제시된 거의 모든 것에서 이것은 NULL로 요청을 보내 문제 없이 구현됩니다.
알고리즘에 대한 또 다른 요구 사항이 있습니다. 즉, 불필요한 요소를 제거한 후 배열 내부에 요소를 올바르게 배치해야 합니다. 이 검사를 먼저 수행했어야 합니다. 다음으로 속도 테스트입니다.
무엇을 반환하는 코드에 설명이 있습니다. 혼합 배열이 있습니다. 다른 배열에 있습니다.
PS 글쎄요. 내 기능에서 일부 수표가 등록되었지만 사용되지는 않습니다. 그러나 이 모든 것과 그 이상이 있습니다.
나는 참가자들의 전문성과 그들의 위치를 의심하지 않는다. 방금 체크섬 검사의 결함과 새 어레이에서 요소의 올바른 배열에 대한 추가 검증의 필요성을 지적했습니다.
이 모든 것이 맞다면 나는 당연히 끝에서 두 번째 자리를 차지했습니다.
내 연습에서는 특정 작업의 속도에 대해 거의 생각하지 않습니다. 나는 솔루션의 간결성과 명확성에 더 관심이 있습니다. 이 항목이 다음과 같이 나와 놀랐습니다.
if (Arr[q]==val){deleted++; q--;}
느려질 수 있습니다.
그러나 알고리즘을 평가하는 기준을 하나 더 추가한다면 - 솔루션의 간결함 - 아마도 내가 첫 번째 위치에 있을 것입니다.
속도와 간결성이라는 두 가지 기준을 결합하고 알고리즘의 평균 점수를 계산하면 표에서 더 높은 자리를 차지할 것입니다.
그러나 Fedoseev의 버전은 내 것보다 훨씬 더 간결합니다.그러나 알고리즘을 평가하는 기준을 하나 더 추가한다면 - 솔루션의 간결함 - 아마도 내가 첫 번째 위치에 있을 것입니다.
메인 루프의 버전:
그리고 이것은 페도세바입니다:
두 옵션 모두 동일한 작업을 수행합니다. 누가 더 간결합니까?
메인 루프의 버전:
그리고 이것은 페도세바입니다:
두 옵션 모두 동일한 작업을 수행합니다. 누가 더 간결합니까?
그에게. 그는 대신
for (;i<sz;i++)
이것은 더 간결합니다.))
그에게. 그는 대신
이것은 더 간결합니다.))
컴파일러와 동일합니다.
불필요한 Peter가 많기 때문에 가장 느리게 작동합니다(나는 주제의 첫 번째 옵션을 전혀 고려하지 않음)
Fedoseev에는 주기의 한 패스에서 하나 의 수표, 하나 의 할당 및 하나 의 증분이 있습니다.(나는 주기를 구성할 때 검증과 증분을 고려하지 않습니다).
두 개의 검사, 두 변수의 합 하나 , 증분 세 개 , 할당 하나 가 있습니다.
컴파일러에 의한 최적화에 대한 모든 희망, 그렇지 않으면 ArraySize 가 각 반복에서 실행됩니다.
컴파일러에 의한 최적화에 대한 모든 희망, 그렇지 않으면 ArraySize가 각 반복에서 실행됩니다.
예, 컴파일러는 분명히 루프에서 배열 차원 이 변경되지 않으면 이 함수를 한 값으로 독립적으로 대체하여 이 함수를 한 번만 평가하는지 확인합니다.
어쨌든 이렇게 하면:
함수의 실행 시간은 변경되지 않습니다.
따라서 더 간결하게 작성하려면 Peter가 한 것처럼 정확하게 작성하는 것이 좋습니다. :)
하지만 개인적으로 눈이 아프다는 데 동의합니다. 함수가 매번 호출될 것 같은 느낌.
하지만 개인적으로 눈이 아프다는 데 동의합니다. 함수가 매번 호출될 것 같은 느낌.
imho 컴파일러에게 선택권을주지 않는 것이 좋습니다)
물어보자,
if(count>6) { 배열 복사
6개 이상 - 과학적 찌르기의 방법으로 값을 얻었거나 어떤 정당성이 있습니까?)imho 컴파일러에게 선택권을주지 않는 것이 좋습니다)
물어보자,
if(count>6) { 배열 복사
6개 이상 - 과학적 찌르기의 방법으로 값을 얻었거나 어떤 정당성이 있습니까?)네, 바로 그 사람입니다. 과학적인 찌르기 방법. 사실, 내 관찰에 따르면 5에서 8까지입니다. 매번 이 숫자를 자동 조정하여 이 프로세스를 자동화할 수 있습니다. 실제로 다른 프로세서와 시스템에서 이 숫자는 다를 수 있습니다.
예를 들어 이 원칙에 따라 CCanvas 클래스의 ArrayCopy와 ArrayFill을 모두 변경하면 캔버스 속도에서 좋은 이득을 얻을 수 있습니다.