반응형
콜라츠 추측은 다음과 같습니다.
어떤 자연수에 x에 대하여
x가 홀수이면 x에 3을 곱한 다음, 1을 더해주고 (x->3x+1)
x가 짝수이면 x를 2로 나누어준다. (x->x/2)
이 과정을 무한히 반복하면 어떤 x든 4->2->1->4->2->1... 을 반복하게 된다. (1에서 멈춘다면, 모든 수는 1에 수렴한다.)
문제가 생각보다 단순해보여서 많은 사람들이 증명하고자 도전한 문제이지만 이 문제를 풀면 정신병을 얻게 된다는 소문이 있을 정도로 세계적인 난제입니다.
그래서 단순하고 무식한 방법으로, 2부터 10^8의 수 정도를 확인해 보기로 했습니다.
파이썬으로 만들었으며, 다음과 같은 코드로 확인했습니다.
def collatz(n: int):
while n != 1:
print(n, end=' -> ')
if n % 2 == 0:
n = n // 2
else:
n = 3 * n + 1
print(n)
print()
x=2
while(x<100000000):
collatz(x)
x=x+1
이렇게 해서 수가 끝나지 않고 무한히 반복되는 경우가 있는지(1로 수렴하지 않거나 발산하는 경우가 있는지) 확인해 보았습니다.
.
.
.
무려 아침 10시부터 17시 50분까지 약 8시간 정도 실행했는데 2381790까지 확인했습니다.
그 이전까지 문제가 있는 수는 확인하지 못했고 증명만 하지 못했을 뿐, 왜 많은 사람들이 쉬워 보여서 이 난제를 해결하고자 도전했는지 알 수 있었던 것 같습니다.
이 문제가 난제인 가장 큰 이유는 귀납법도, 반례도 찾기 어려울뿐더러, 컴퓨터가 모든 경우의 수를 계산해서 증명한 4색 정리처럼 모든 경우의 수를 확인하기에는 자연수가 무한하다는 점이 이유로 뽑힐 것 같습니다.
굉장히 흥미로운 시간이었고 8시간 동안 혹사한 저의 컴퓨터에게도 휴식을 주고자 합니다.
읽어주셔서 감사합니다.
반응형
'일상다반사' 카테고리의 다른 글
TEST (0) | 2022.06.02 |
---|---|
캐릭터가 생겼습니다! (0) | 2022.02.08 |
안녕하세요. (0) | 2022.02.04 |