Collatz 재귀는 얼마나 오래 실행됩니까?


19

다음 Python 코드가 있습니다.

def collatz(n):
    if n <= 1:
        return True
    elif (n%2==0):
        return collatz(n/2)
    else:
        return collatz(3*n+1)

이 알고리즘의 실행 시간은 무엇입니까?

시험:

경우 함수의 실행 시간을 나타낸다 . 그런 다음 대해 { T ( N은 ) = 1  에 대해  , N 1 T ( N ) = T ( N / 2 )  에 대한  N  짝수 T ( N ) = T ( 3 , N + 1 )  에 대한  N  홀수T(n)collatz(n)

{T(n)=1 for n1T(n)=T(n/2) for n evenT(n)=T(3n+1) for n odd

이 짝수 인 경우 은 일 것이라고 생각 하지만 일반적인 재발을 계산하는 방법은 무엇입니까?LG N NT(n)lgnn


4
등 이어야합니다 . +1이 중요합니다. 그렇지 않으면 시퀀스가 종료되는 모든 대해 입니다. T(N은)=1N을T(n)=T(n2)+1T(n)=1n
user253751

2
54는 짝수입니다. T (54) = 112! = lg (54)
Taemyr

사용자가 정수만 입력한다고 가정합니까?
Dean MacGregor

@DeanMacGregor 예. 실제로 양의 정수가 가정됩니다.
duskwuff

더 많은 bkg 세부 사항이 도움이 될 것입니다. 코드를 어디서 얻었습니까? 어떻게 소개 했습니까? 이것은 Lagarias의 전체 책이 쓰여진 ~ 3 세기 동안 해결되지 않은 수 이론에서 반 유명한 공개 문제입니다. 이에 증명 CS의 POV에서 어떤 시간과 공간 복잡도 수준의 증거에 해당합니다. 여기에 더 많은 참조 . 또한 관심있는 사람을 위한 컴퓨터 과학 채팅에 대한 훌륭한 주제입니다 . 도있다 collatz에 태그 MathOverflow 등 최신 연구 결과의 문제는 하드 그것을 만드는 고유 프랙탈 특성이있다.
vzn

답변:


29

이것은 Collatz 추측입니다-여전히 열린 문제입니다.
추측은이 시퀀스가 ​​모든 입력에 대해 중지된다는 증거입니다. 이는 해결되지 않았기 때문에이 런타임 반복 관계를 해결하는 방법을 모릅니다. 또한 전혀 멈추지 않을 수도 있습니다. 따라서 입증 될 때까지 실행 시간을 알 수 없으며 .


감사. 그러나 내 재귀가 맞습니까? 그렇다면 여전히 해당 재귀에 대한 솔루션을 찾을 수 없습니까?
9bi7

"재귀가 참되다"는 무슨 뜻입니까? 실행 시간을 찾을 수 없지만 많은 수의 경우 몇 번의 점프가 발생하고 1에 도달합니다. 은 런타임이 아니라 함수 자체를 나타냅니다. T(n)
Evil

올바른 예를 들어 병합 정렬과 같이 있습니다. 코드는 재귀 적이므로 재귀를 작성할 수 있습니다. T(n)=2T(n/2)+O(n)
9bi7

7
"이것은 해결되지 않았기 때문에 상한이 없다"-우리는 여기서 언어에주의해야한다. 우리는이 재발의 해결책, 이야기의 끝을 모른다.
Raphael

7
예. 그러나 "우리는 모른다"는 "상한이 없다"와 동일하지 않습니다. 기본적으로 나는 수학적인 "있다"( )와 보통의 사람들은 "있다"( "I has one")로 머리카락을 나눕니다 . 하지만 이것이 TCS에서 중요한 차이점 이라고 생각합니다 .
Raphael

15

당신은 코드를 올바르게 번역 . 재발을 해결하는 방법 에는 여러 가지 가 있습니다 .

그러나 현재 collatz까지도 모든 것이 정지 되는지는 현재 알려져 있지 않다 n. 그것의 주장은 Collatz 추측으로 알려져 있습니다 . 따라서이 재발에 대해 알려진 방법은 없습니다.

이 짝수 이면 은 이 될 것이라고 생각합니다.T(n)lgnn

어떻게 요? 나는 당신이 당신의 주장이 올바른 생각하고 있다고 생각 합니다. 이것은이 재발이 기하 급수적으로 몇 가지 점을 조사 하여 까지 해결할 수있는 것이 아님 을 보여줍니다 ( 여기 참조 ).n=2kΘ


13

시간 복잡도 함수는

{T(n)=O(1) for n1T(n)=T(n/2)+O(1) for n evenT(n)=T(3n+1)+O(1) for n odd

점근 적 시간 복잡성에 관심이 있다면 다음과 같이 다시 쓸 수 있습니다.

{T(n)=1 for n1T(n)=T(n/2)+1 for n evenT(n)=T(3n+1)+1 for n odd

모든 대해 결과 TM ( 정지 문제 참조 ) 조차 알려져 있지 않습니다 . 자연스럽게 우리가 매 마다 멈추는 지조차 모른다면 멈추는 데 걸린 시간을 측정 할 수 없습니다 . /math/2694/what-is-the-importance-of-the-collatz-conjecture 도 참조 하십시오 .M,1nHaltnn

Collatz 추측 은 Collatz가 1937 년에 제안한 매우 유명한 추측입니다. 많은 저명한 수학자들이이 추측을 해결하려고 노력하면서 거의 쓸모없는 데 많은 시간을 소비했습니다. 폴 에르 도스 (Paul Erdős)도 콜라 츠의 추측에 대해 말했다.


1
"폐기물"은 주관적인 판단입니다. 추측에 대한 작업 / 일부 결과가 "폐기되지 않은"것으로 간주 될 수있는 이유는 Lagarias의 전문가 분석을 참조하십시오. 또한 Erdos의 인용문은 아마도 수십 년이 지난 것으로 추정되며 그 이후로 수학은 실질적으로 발전했으며 계속해서 ... 새로운 수학 기술이 문제에 대해 시도 된 것은 아닙니다.
vzn

그것은 뺨 댓글에 혀였습니다. (공평하게 대괄호 안에 넣지 않습니까). 문제가 해결 될 때까지 모든 노력이 낭비되는 것처럼 보이지만 일단 해결되면 장애가 어떻게 해결로 이어 졌는지 알 수 있습니다. 저는 수학이 상당히 발전했다는 것에 동의하지 않습니다. 기술은 실질적으로 발전했지만 물리, 수학 및 컴퓨터 과학은 느리게 발전하고 있으며 그것이 어떻게 진행되어야 하는가입니다.
Shreesh

3x+1

라가 리아스는 그 주제에 관한 책 전체를 쓰거나 편집하고 편집 했으며 문제를 연구하는 것에 대해 "사과 적"이라고 들립 니까? 롤! 아주에 반대 . 그러나 많은 다른 수학자들이 문제를 중요하거나 중요한 공격 / 노력으로 간주하지 않기 때문에 그가 방어 적 입장에 동의했다는 것을 인정하고 인정합니다 (가우스는 Fermats Last Thm! 하지만 그것을 복용 최고 수학자의 대규모 다른 경우가 있습니다 완전히 심각 예를 들어 타오를 하나는.
vzn

2

다른 답변에 함수의 세 번째 분기 즉, 의 경우 가 라는 사실을 추가하면 그 경우 함수가 더 큰 인스턴스에서 계산됩니다 ( 은 보다 낮음 ). 따라서 해당 계산 브랜치에서 수행해야 할 작업이 더 있습니다.noddn3n+1

우리가 겪는 다른 재발 관계 (예를 들어, 병합 정렬 )의 경우 크기가 작은 인스턴스의 경우 문제를 하위 문제로 나누는 것을 따릅니다. 이러한 재귀는 기본 사례, 즉 알려진 또는 로 자연적으로 퇴화 합니다. 따라서 마스터 정리 와 같이 재귀 분석을위한 표준 수학 도구를 사용할 수 있습니다 .T ( 0 ) T ( 1 )T(n)=2T(n/2)+nT(0)T(1)

collatz 함수의 경우, 우리는 표준 수학적 재귀 도구를 사용하여 경우 결국 열화 될 것이라는 재귀를 직접 추론 할 수는 없습니다 . 이 주제는 문제점을 설명하는 재귀가 아니라 문제점 자체를보고 해결해야합니다.3n+1


0

n이 짝수이면 T (n) = T (n / 2) + 1입니다. 그러나 n / 2는 고르지 않을 가능성이 높으므로 거기에 붙어 있습니다.

당신이 배운 멋진 작은 규칙은 실제 문제에 직면하여 작동하지 않습니다. 그들은 벽돌 벽에 부딪쳐서 먼저 얼굴을 보았습니다. 자신에게 호의를 베풀고 수동으로 T (7)의 재귀를 따르십시오. 그러면 이것이 여전히 관련이 있다고 생각하는지 알려줍니다.

7이 짝수가 아니기 때문에 이것이 원래의 질문과 관련이 없다고 생각하면 : n이 홀수 일 때마다 T (n) = T (3n + 1), 3n + 1은 짝수이므로 T (n)이 로그인 경우 n이 짝수이면 n> 1이 홀수 일 때마다 log (3n + 1) + 1이됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.