칼질 3번으로 5명이 나눠먹기


http://jinh.tistory.com/549

하나의 케이크를 칼질 3번으로 5명이 나눠먹는 방법을 찾아야 한다.

그래서 난 다음과 같은 해법을 찾아보았다.

빨간색 선 A, B, C를 따라서 3번 칼질하면 된다. 문제는 a와 b의 위치이다. a는 잘랐을 때 전체의 1/5가 되는 지점이어야 하고 b는 잘랐을 때 전체의 2/5가 되는 지점이어야 한다. C는 A를 잘라서 쳐낸 후 나머지 부분을 지름을 따라 자르면 된다.

물론 이 문제는 간단한 적분을 해서 답을 구할 수 있다.

원의 방정식을 $$y = \sqrt{1-x^2}$$ 으로 가정하고 간단한 적분을 하면 (고등학교 수학이면 풀 수 있다. 못 풀겠으면 적분표 찾아보자.)

$$\cos^{-1}(a) – a\sqrt{1-a^2} = 0.1\pi$$

마찬가지 방법으로 b도 구할 수 있는데 자세한 설명은 생략하도록 하고, 어쨌든 중요한건 위의 방정식은 초월방정식이라 근의 공식이 없다. (5차방정식보다 큰 차수의 방정식은 근의 공식이 없는데, 초월방정식은 무한차수 방정식이라서 없다.)

따라서 원의 방정식을 x=1인 지점부터 x=a인 지점까지 적분을 해서 원 넓이의 1/5가 되는 지점을 찾아야 한다. 파이썬을 써보자.

import numpy

Integrated = 0.0

dx = 1.0E-8

x = 1.0

def circle(x):

return numpy.sqrt(1.0-x*x)

while Integrated<=numpy.pi/5.0:
x-=dx

Integrated += 2.0*circle(x)*dx

print(x)

저기 중간에 numpy.pi를 2.0*numpy.pi로 고치면 원 넓이의 2/5가 되는 지점을 찾아주게 된다. 아니면 중간에 2.0을 1.0으로 고쳐도 된다. 어쨌든. 적분 방법이 사다리꼴 방법도 아닌 그냥 사각형 방법이긴 하지만 어차피 dx구간이 작아서 별 문제는 없다. x는 적분을 0에서부터가 아니라 1에서부터 시작하는데, 따라서 우리가 찾는 답은 1-x가 된다.

그렇게 하면 x = 0.508인 지점이 바로 1/5가 되는 지점이다. 대략 반지름의 절반정도 된다.

그리고 x=0.343인 지점이 바로 2/5가 되는 지점이다.

즉, 일단 오른쪽 끝에서부터 반지름의 0.5정도 되는 부분에서 잘라낸다. 그 다음 왼쪽 끝에서부터 반지름의 0.34배정도 되는 부분에서 잘라낸다. 그리고 두번째 잘라서 생긴 두 조각을 한번에 절반으로 자르면 된다.

0.000001%라도, 또는 그보다 더 정확하게 똑같아야 한다고 주장하는 사람이 있을 수 있다. 그런 사람은 원하는 오차를 알려주면 그보다 더 작은 오차로 자를 수 있는 정확한 수치를 언제나 알려줄 수 있다. (왜냐하면 리만 적분은 수렴하기 때문이다.) 아무리 작은 오차라도 0보다 큰 오차이기만 하면 된다.

코멘트

“칼질 3번으로 5명이 나눠먹기”에 대한 4개 응답

  1. 
                  snowall
                  아바타

    오오

    힘내요!

  2. 
                 하루
                 아바타

    군대에서 본 신선한 글~

  3. 
                  snowall
                  아바타

    간단히 풀고 싶었는데 간단하지는 않네요.

    그러나 수학자들은 간단하다고 할테니 괜찮아요. (정신승리)

  4. 
                 JinH
                 아바타

    헐. 이건 이거 나름대로 무서운데요.

snowall 에 응답 남기기응답 취소

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.