당신은 1주일에 얼마나 자주 머리를 감으시나요?


친구랑 이런걸로 말다툼하다가 어쩌다보니 나는 주당 평균 1.414...회 감는 사람이 되었다. 저질러놓고 보니 그럼 몇번 감아야 하는가가 문제다. 아니, 감을 수는 있는건가?


1주당 평균적으로 머리를 감는 수는 다음과 같이 알아낼 수 있다.


1주당 평균 머리 감은 수 = 기간 동안 전체 머리 감은 횟수 / 기간(주)


그런데, 오늘 머리를 감아야 하는가 아닌가를 결정하려면 기간이 주가 아니라 일별로 나와야 한다. 따라서 공식을 조금 고친다.


1주당 평균 머리 감은 수 = 기간 동안 전체 머리 감은 횟수 * 7 / 기간(일)


1주당 평균적으로 머리 감은 수를 x라고 하자. x를 2의 제곱근에 근접시키기 위해서 오늘 머리를 감든가, 감지 않든가 해야 한다.


일단 오늘부터 기간이 시작되었다고 가정하자. 오늘은 머리를 감아야 한다. 그럼 일단 오늘은 x=7/1=7이 된다.


+1일차. 머리를 감으면 14/2=7이고, 머리를 감지 않으면 7/2=3.5이다. 3.5가 2의 제곱근에 가까우므로 감지 않는다.

+2일차. 머리를 감으면 14/3=4.666...이고 머리를 감지 않으면 7/3=2.333...이다. 따라서 오늘도 머리를 감지 않는다.

+3일차. 머리를 감으면 14/4=3.5이고, 머리를 감지 않으면 7/4=1.75이다. 따라서 오늘도 머리를 감지 않는다.

+4일차. 머리를 감으면 14/5=2.8이고, 머리를 감지 않으면 7/5=1.4이다. 따라서 오늘도 머리를 감지 않는다.

+5일차. 머리를 감으면 14/6=2.333...이고, 머리를 감지 않으면 7/6=1.1666...이다. 여전히 머리를 감지 않는다.

+6일차. 머리를 감으면 14/7=2이고, 머리를 감지 않으면 7/7=1이다. 따라서 머리를 감지 않는다.

+7일차. 머리를 감으면 14/8=1.75이고, 머리를 감지 않으면 0.875다. 따라서 이제 머리를 감는다.

+8일차. 머리를 감으면 21/9=2.333...이고, 머리를 감지 않으면 1.555...이다. 따라서 머리를 감지 않는다.


이걸 계산하기 위한 파이썬 코드.

import numpy

sqrt = numpy.sqrt
abs = numpy.abs
x = sqrt(2.)
print(x)

j=1.
for i in range(2, 20):
    if abs(7.*j -x * i) > abs(7.*(j+1.) - x * i):
        j+=1.
        print("the " + str(i) + "th day is washed " + str(j) + "times and average: " + str(j*7./i) + "times/week")


대략, 평균적으로 5일에 한번씩 감는 셈이 되었다. 7/5 = 1.4니까. 물론 1.4보다는 2의 제곱근이 더 크기 때문에 5일에 한번 보다는 더 자주 감는 것이다. 따라서, 4~5일에 한번이다.


1주일에 원주율만큼은 감아야 하지 않나 하는 시대적 위기감이 들기는 한다.

by snowall 2012. 4. 27. 13:11