다음과 같은 재발의 다음 증거로 무엇이 잘못되었는지 이해하려고합니다.
설명서에 유도 귀무 가설 때문에 잘못 되었다고 나와 있습니다.
다음과 같은 재발의 다음 증거로 무엇이 잘못되었는지 이해하려고합니다.
설명서에 유도 귀무 가설 때문에 잘못 되었다고 나와 있습니다.
답변:
최종 목표는 을 증명하는 것 입니다. 귀납 가설로 시작합니다.
모든 i < n에 대해 T ( i ) ≤ c i .
그리고 증거를 완료하기 위해, 당신은 보여 주어야 뿐만 아니라입니다.
그러나 추론 할 수있는 것은 이며 증명을 완료하는 데 도움이되지 않습니다. (거의) 모든 n에 대해 하나의 상수 c 가 필요합니다 . 따라서 우리는 아무것도 결론을 내릴 수 없으며 T ( n ) = O ( n ) 은 증명되지 않습니다.
결과와 증명 프로세스가 혼동됩니다. 그리고이 경우 은 실제로 Θ ( n log n ) 이므로이를 증명할 수있는 적절한 유도 가설을 고려할 수 있습니다.
몇 단계를 생략했습니다. 임을 유도하여 증명하려고 시도하는 것처럼 보이고 증거는 다음과 같습니다.
k < n에 대해 라고 가정하십시오 . 이것은 T ( k ) ≤ c를 의미합니다.일부 c의 경우 k . 그런 다음 T ( n ) = 2 T ( ⌊ n / 2 ⌋ ) + n ≤ 2 c ⌊ n / 2 ⌋ + n ≤ ( c + 1 ) 이므로 T ( n ) = O ( n ) 입니다.
이 증명은 처음부터 잘못되었습니다.“ k < n ”에 대한 는 의미가 없습니다. 큰 오 점근선 개념이다 : T ( K ) = O ( K ) 일부의 일정이 있음을 의미 C 및 문턱 N 되도록 ∀ K ≥ N , T ( K ) ≤ C . 그리고 마지막으로,“ T ( n ) = O ( n ) ”이라고 결론 지을 수 없습니다. 왜냐하면 함수 T 에 대한 내용이 전체적으로 나타나고 특정 값 T ( n ) 에 대해서만 무언가를 증명했기 때문입니다..
의미 에 대해 명시해야합니다 . 아마도 당신의 증거는 다음과 같습니다.
T ( k ) ≤ c 라고 가정하자 모든 K < N . 그런 다음 T ( n ) = 2 T ( ⌊ n / 2 ⌋ ) + n ≤ 2 c ⌊ n / 2 ⌋ + n ≤ ( c + 1 ) .
이것은 유도 단계를 증명하지 못합니다 : 이고 k = n의 경우 T ( k ) ≤ ( c + 1 ) . 이것은 약한 경계입니다. 이것이 무엇을 의미하는지보십시오 : T ( k ) ≤ c 는 c 가 T 의 성장 속도에 대한 경계임을 의미한다. 그러나 k가 커지면 c 가증가합니다. 그것은 선형적인 성장이 아닙니다!
자세히 보면 k가 두 배가 될 때마다 비율 가 1 씩 증가 한다는 것을 알 수 있습니다. 따라서 비공식적으로 m = 2 p k 이면 c m = c k + p ; 즉, c k = c 0 log 2 k 입니다.
이것은 정확하게 할 수 있습니다. , T ( k ) ≤ c log 2 ( k )의 유도로 증명합니다 .
재귀 관계는 데이터를 선형 시간에 두 개의 동일한 부분으로 분할하는 분할 및 정복 알고리즘에 일반적입니다. 이러한 알고리즘은 시간 ( O ( n ) 아님).
예상 결과가 무엇인지 보려면 마스터 정리 에 대한 반복 관계를 확인할 수 있습니다 . 나눗셈은 이고 추가 작업은 n입니다 . log 2 ( 2 ) = 1 이므로 성장이 Θ ( n 인 두 번째 경우 입니다. .
나는 이미 내 의견을 더 자세히 설명함으로써 이미 주어진 대답을 확장하고 있습니다.
추측하기가 어렵고 지루할 수 있으므로 때로는 더 나은 방법이 존재합니다. 그러한 방법 중 하나는 마스터 정리 입니다. 우리의 되풀이는 이제 . 여기서 a ≥ 1 및 b > 1 은 상수이고 f ( n ) 는 함수입니다. 우리의 경우 ⌊ n / 2 ⌋ 는 n / 2 를 의미하는 것으로 해석 될 수 있습니다.. 기술적으로 정확히 말하면, 가 정수가 아니기 때문에 재귀가 잘 정의되어 있지 않을 수 있습니다. 그러나 이것은 재발의 점근 적 행동에 영향을 미치지 않기 때문에 허용됩니다. 따라서 바닥과 천장을 떨어 뜨리는 것이 편리한 경우가 많습니다. 이것의 공식적인 증거는 약간 지루하지만 관심있는 독자는 예를 들어 Cormen et al. 책 .
우리의 경우에는 , b = 2 , f ( n ) = Θ ( n ) 입니다. 이것은 우리가 n log b a = n log 2 2 = n 임을 의미합니다 . 마스터 정리 의 두 번째 경우 는 f ( n ) = Θ ( n ) 이후에 적용되며 , 해는 T ( n ) = Θ ( n log입니다. .