노가다(수학)

 

[image]
[image]
[image]
흔히 생각하는 계산 노가다[1]
리만의 계산 노가다[2] 출처
선형대수학의 계산 노가다[3] 출처
1. 개요
2. 시행착오법?
3. 사례


1. 개요


수학 문제 풀이법에 대한 은어. 시간만 있으면 계산을 반복함으로써 답을 얻을 수는 있으나 한방에 풀어내는 규칙이나 공식은 잘 모르겠을 때, 엄청난 시간을 들여 단순 계산을 반복하면서 답을 도출하는 것을 말한다. 실제 컴퓨터가 계산하는 방법이다.[4]
특히 수열 파트에 나오는 탑쌓기 문제 등을 아스트랄한 노가다를 해내서 맞히면 반에서 '''용자의 칭호'''를 획득하게 되며, 인터넷에서도 간간이 짤방으로 등장한다.

2. 시행착오법?


이 문서에서는 단순히 복잡한 계산을 의미하기 때문에, '적합한 수를 대입해보고 안 되면 다른 수를 대입해보는 방식'의 '''시행착오법(trial and error)''', '''발견적 추론'''과는 다르다[5]. 그러나 시행착오법이 여기로 다이렉트된 경우가 많으므로 착각하지 말 것.
이하 문단에서도 이를 구분짓지 못하고 서술한 부분이 있으므로 적합한 수정이 이루어질 때까진 걸러 읽자.

3. 사례


학문적으로 말하면 이산수학에서 말하는 방법론 중 하나이다. '''이산'''수학인 이유는 연속[6]이 아닌 이산적인 대상을 다루기 때문이다.
이런 노가다는 주로 수열문제처럼 일정한 규칙은 있는데 그 규칙을 일반화하지는 못한 경우[7] 발생하게 된다. 따지고 보면 수학적인 사고와 정상적인 문제풀이 과정을 통해 규칙을 유추하고 답을 도출했다고 해도, 검산하면서 그 답을 확신하기 위해서는 결국 노가다 내지는 역대입이 가장 확실하긴 하다. 소싯적의 가우스도 훗날 소수 정리라고 불리는 수학적 성질을 밝혀내기 위해 매일 1000개씩 소수를 찾아내서 자연로그에 집어넣는 용자짓을 저지르기도 했다.
또한 경우에 따라서는 공식에 대입해서 푸는 것보다 노가다를 약간 하는 것이 더 효율적일 수도 있다. 실제로 7차 교육과정 수학 1의 수능출제 매뉴얼에선 '''10항까지 축차대입해서 규칙성을 알 수 있는 문제'''가 출제범위다! 애초에 수능에서는 수험생이 태어나서 처음 보는 수열이 나오기 때문에, 정말 규칙을 모르겠다면 5~6항 정도까지는 계산을 반복하는 것도 나쁘지 않다.[8] 이때 자기가 숫자 계산 잘한다고 결과의 값만 옮겨 적을 게 아니라 식의 형태를 남겨 두는 게 포인트. 노가다 결과가 1+3+6+10+...이라면 규칙성을 발견하기 어렵지만 1+(1+2)+(1+2+3)+(1+2+3+4)+...와 같은 식으로 노가다를 해 나가다 보면 규칙성을 쉽게 발견할 수 있다.
사실 문제당 시간 제한이 촉박한 수능이나 내신보다는 '''KMO 등의 수학경시에서''' (특히 조합영역) 굉장히 파워풀한 방법이다. 경시학원에서는 가장 '''효율적으로(...) 경우의 누락 없이 노가다를 뛰는 방법'''을 중요하게 가르치기도 한다. 특히 정수 문제의 경우 어떤 방정식의 해가 정수로 한정되어 있기에 그 해의 범위를 구하고 그 안의 수들에 대해 전부 대입해보는 방법이 많이 사용되며, 조합도 각각의 경우를 효율적으로 찾는 방법을 가르치는 경우가 많다.
한 경험자의 말에 따르면, "더블카운팅? 트리? 점화식? 스털링 수? 다 필요없어. NGD 하나면 된다." 라고 한다.[9][10]
쉽게 말하자면 5*8=40이라는 공식을 5+5+5+5+5+5+5+5=40 이런 식으로 계산하는 방식이다.
물론 위의 그림처럼 하느니 그냥 공부 좀 해서 규칙을 파악할 수 있는 능력을 습득하는 게 훨씬 좋다. 저렇게 일일이 계산해서 확인해 보는 것도 필요하다면 필요한 짓이겠지만 그려려면 뭐 때문에 수열이니 뭐니 하는 것을 공부하겠는가. 사람은 컴퓨터가 아니니 저 미친 듯한 양의 노가다를 안 하려고 공부하는 거다.
컴퓨터의 등장 이후 컴퓨터가 실제로 노가다로 계산을 해서 미해결문제를 증명하는 일이 나타나고 있다. 최초로 인정 받은 것은 4색정리이며, 이를 계기로 계속 증가하고 있다. 골드바흐의 약한 추측도 1030보다 큰 수에서 성립한다는 것이 확인되자, 7부터 1030까지는 그냥 컴퓨터 돌려서 해결했다. 물론 이것도 엄연히 수학적인 증명으로 인정받는다.[11]
한편 이것을 해킹 기법으로 발전시킨 것이 무차별 대입 공격(Brute Force Attack)으로, 정답이 나올 때까지 모든 수를 다 찍는 것이다. 주로 복호화가 되지 않는 해쉬 함수가 공격 목표가 되는 편. 불행히도 MD5는 이미 뚫린 지 오래며, SHA도 현 시점에서는 SHA-3을 제외하면 모두 털린 상태라고 한다(...)
또한 수능에서도 종종 볼 수 있는데, 이런 노가다를 21번이나 30번에 처넣어 버리면 정말 끔찍한 일이 일어난다. 예로는 2014년 9평 B형 21번[12], '''2019년 6평 나형 30번'''[13], '''2019년 6월 전국연합학력평가 고2 수학 가형 30번'''[14] 등이 있다.

3.1. 대수학에서


곱셈 공식, 인수분해를 할 때 아래의 이항정리

$$\displaystyle (a+b)^{n}=\sum_{r=0}^{n} \binom{n}{r} a^{r}b^{n-r} $$
[1] 첫 문제의 출처는 2004년 고3 3월 학평 나형 14번이고, 두 번째 문제 출처는 2007년 고1 6월 학평 26번 문제이다. 두 번째 문제의 답은 200.[2] 다름 아닌 리만 가설을 연구하기 위해 깜지를 쓴 것이다.[3] 3차 정사각행렬역행렬을 각각 첨가행렬과 크라메르 공식으로 구하는 과정이다.[4] 물론 '어떻게 하면 컴퓨터가 더 효율적으로 계산할 수 있을까?' 하는 연구도 활발하다. 이에 대해 공부하는 과목이 수치해석학이다.[5] 예시: 삽자루청도 우시장 문제[6] 연속함수에서 말하는 그 연속이다.[7] 이런 것들을 평가원 용어로 발견적 추론이라고 한다.[8] 대부분 수열파트는 4항까지 해보면 등차수열인지 등비수열인지 계차수열인지는 극명해진다.[9] 그런데 저런 방법을 사용하기엔, 특히 스털링 수의 경우 나오는 경우가 너무 적어서 차라리 노가다를 연습하는게 효율적일 수도 있다. 이쪽은 노가다를 너무 등한시하고 기피하면 오히려 더 문제가 되는 케이스다.[10] 심지어 학력평가 기출문제 중에는 방정식 $$2^a=a+12$$의 양수해를 구하는 문제가 나온 적이 있는데, 이 꼴의 방정식은 필연적으로 람베르트 W 함수를 이용해야 한다. 그런데 이 함수는 '''고등학교 과정에서는 아예 가르치지 않는 초월함수다.''' 그래서 고등학생은 노가다 말고는 선택지가 없다. 참고로 답은 4.[11] 다만 리만 가설스큐스 수에서도 확인할 수 있듯이, 큰 수의 세계에서는 상상도 할 수 없는 일이 일어나곤 한다. 종래에는 로그 적분 함수(로그함수의 역수를 적분한 함수)가 소수 계량 함수보다 항상 클 것이라고 예상했었고, 사람들이 계산할 수 있는 정도로 큰 수에서는 그것이 사실이었으나, 스큐스 수를 기준으로 로그 적분 함수와 소수 계량 함수의 대소 관계가 역전되며, '''심지어 대소 관계가 무한히 역전을 거듭한다!''' 최초로 계산된 스큐스 수는 $$10^{10^{10^{34}}}$$ 정도. 매우 큰 값의 수에서는 어떠한 일이 일어날지 확인할 수 없으며, 귀납법의 가장 치명적이고 원시적인 약점이기도 하다. 초월수 인정이 어려운 이유 중 하나이기도 하다.[12] 뭔가 특별한 발상이 필요한 게 아니라 매개변수 도함수에 3,4,5,6을 각각 대입해서 그래프를 전부 다 그리고 극점을 전부 다 찾아야 한다(...) 그래도 정답률은 40%대로 꽤 높다. [13] 문과수학 최강의 노가다 문제로 꼽힌다. 그나마 발상을 잘 해서 f(x)의 함숫값을 몇 개 구해 놓으면 8번 정도만 시도해 보면 되지만, 그렇지 않다면 '''60개가 넘는 케이스를 하나 빼고 전부 다 모순을 밝혀내야 한다.''' 정답률은 무려 1.5%.[14] '''역대 교육청 문제중 가장 최고난도로 손꼽힌다.''' 오답률은 '''100%'''이며, (만점자 '''5명'''.) 해설강의를 보면 경우의 수가 사람의 손으로는 도저히 계산할 수 없어서 컴퓨터 매크로 (...)를 86분 동안 돌려서 해결하는 등 총체적 난국이다
의 성질을 이용하는데, $$n$$의 값이 클수록 계산량이 무지막지해지는 것을 알 수 있다.
초등학생들이 통분을 어려워하는 이유 중 하나이기도 한데, 단순히 분모를 합치는 게 아니라
  • $$\displaystyle \frac{a}{b} + \frac{c}{d} = \frac{a \times d}{b \times d} + \frac{c \times b}{d \times b} = \frac{ad+bc}{bd}$$ (2개의 분수의 통분)
  • $$\displaystyle \frac{a}{b} + \frac{c}{d} + \frac{e}{f} = \frac{a \times d \times f}{b \times d \times f} + \frac{c \times b \times f}{d \times b \times f} + \frac{e \times b \times d}{f \times b \times d} = \frac{adf+bcf+bde}{bdf}$$ (3개의 분수의 통분)
꼴로 계산해야 하기 때문이다.
또한 선형대수학에서는 수를 묶음(벡터, 행렬 등)으로 계산하므로 필연적으로 노가다가 된다. 대표적으로 내적

$$\displaystyle \left<{\bold a},\,{\bold b}\right> = \sum_{k=1}^{\dim {\bold a}}\overline{a_k} b_k$$
이 있다.[15] 그리고 행렬곱은 이 내적의 반복 계산이다. 노가다와는 별개로 벡터를 '''볼드체'''로 적어야 되기 때문에 대학 초년생들은 이를 피하려고 별별 짓을 하게 된다. 물론 벡터 같은 경우에는 볼드체가 아니라 화살표 기호를 쓸 수는 있다. 허나 유클리드 공간상의 벡터가 아닐 경우 쓰기 곤란하고 그만큼 더 펜을 많이 쓰게 되는 건 함정.

3.2. 해석학, 미적분학에서


시쳇말로 '극한직업'으로 일컫는 것이 이런 쪽을 취급하는 이들일 정도로 밑도 끝도 없는 계산으로 악명높다. 문서 상단에 있는 리만의 깜지만 봐도 잘 알 수 있다.
원인은 다음과 같다.
  • 계산 과정에 무한급수를 다룬다. 원래 식은 간단한 모양이지만 미분이나 적분을 하기 위해서 일종의 무한급수인 테일러 급수로 변환시켜야 하는 일도 잦다.
  • 정적분을 처음 배울 때 구분구적법이라는 것을 익히게 되는데, 일일이 구간을 쪼개서 리만 합으로 보내는 과정이 상당한 고역이다. 이걸 두 값을 대입한 부정적분의 차로 정리한 오귀스탱 루이 코시에게 그랜절을 올려야 할 정도.
  • 미적분의 기본정리를 쓰더라도 일부 초등함수, 그 가운데 유리함수는 사실상 노가다를 면치 못한다. 적분하기 좋게 부분분수분해를 해야 하는데, 이 과정에서부터 팔저림을 호소하는 학생들이 숱하다.
  • 부분적분, 치환적분, 라플라스 변환, 푸리에 변환 같은 '샛길'의 존재. 쌩으로 푸는 것보다는 쉬워지지만 그만큼 계산 과정이 길어진다.
  • 편미분방정식까지 가면 '여러 개의 수를 뭉터기로 계산하는'[16] 선형대수학적 방법이 추가된다.
  • 좀 더 수준이 올라가면 미분형식, 중적분, 위상 공간 같은 게 나와서 안 그래도 복잡한 식을 난장판으로 만든다.
예를 들자면 [math(\displaystyle \int \frac{\sin x}x \,{\rm d}x )]를,
[math(\displaystyle \int \left( 1 - \frac{x^2}{3!} + \frac{x^4}{5!} - \frac{x^6}{7!} + \cdots\cdots + \left(-1\right)^n \frac{x^{2n}}{(2n+1)!} + \cdots\cdots \right)\mathrm{d}x)]
이렇게 풀어야 답이 나온다는 이야기이다.
이 때문에 미분방정식을 다루는 물리학(특히 유체역학[17]), 미분기하학, '해석'이 붙은 수학과목[18]은 손가락이 부서져라 계산해야 하는 것이 일상일 수준.
다만 이 경우는 '시행착오'법이라고 부르기는 곤란한 면이 있다. 이는 시행착오를 겪어서가 아니라 순전히 '''무지막지한 계산량''' 때문에 노가다로 부르는 경우이기 때문.
[15] 저 $$\overline{a_k} b_k$$만 보고 저게 왜 노가다지? 하고 의문을 갖는 사람이 있을텐데, 켤레가 취해진 것을 보듯 저건 복소수끼리의 곱, 즉 '''다항식×다항식''' 꼴이다. 쉽게(?) 풀어서 쓰자면 $$\Re(a_k)\Re(b_k) + \Im(a_k)\Im(b_k) - \Im(a_k)\Re(b_k)i +\Re(a_k)\Im(b_k)i$$인 셈. 그리고 한 번으로 끝나는 게 아니라 벡터의 성분 개수만큼 해야 한다. 흔히 생각하는 내적은 고등학교 수준에서 $$\Im(a_k) = \Im(b_k) = 0$$임에 따라 $$\Re(a_k)\Re(b_k)$$만 남은 꼴이다.[16] 행렬곱, 역행렬, 삼각화, 대각화, 내적, 외적, 텐서곱 등 다수[17] 상대성 이론을 전공하는 사람이 '''"그쪽 분야는 참 힘들게 산다."''' 라고 증언할 정도다.[18] 수치해석 제외. 이건 사실 컴퓨터에게 노가다를 시키는 과목이라서 그렇다.