잡글 가득 블로그
article thumbnail
Published 2020. 11. 9. 22:56
계승 진법 기타

주의: 혼자 쓴 거라서 이해하기 애매모호한 부분이 존재합니다. 그 자리 짚어서 알려주시면 정말 감사하겠습니다.

 

그런 문제 있잖아요?

사전 순으로 배열하라고 주는 NGD 문제 말이에요.

a, b, c, d, e 주고서는

bdaec가 몇 번째로 오나, 하는 거요...

 

그때마다 저는 꼼수를 써서 풀었습니다.

b가 왔으니 a... 에 대해서는 카운팅을 완료했다고 생각할 수 있으므로 4! × 1

d가 왔으니 a..., c... 에 대해서는  카운팅을 완료했다고 생각할 수 있으므로 3! × 2

a가 왔으니 아직이라 2! × 0

e가 왔으니  c...에 대해서는 카운팅을 완료했다고 생각할 수 있으므로 1! × 1

 

 

그리고서 0000부터 세어 나가는 것을 감안하여 +1

∴24+12+0+1+1 = 38

이렇게 문제를 풀어왔었습니다.

 

그런데..?!

역시나 저만 그런 생각을 한 것이 아녔습니다.

이게 수학의 단점인 것 같습니다. 기발한 생각을 해내면 이미 다 있는 것들이라 허망한 거요...

칸토어 아저씨가 이미 다 정리해 놓았네요...

 

어쨌든, '계승 진법'으로 이런 것들을 나타낼 수 있는데요!

 

정의

\(a\in \mathbf{N}\)인 \(a\)를 계승 진법으로

\(a = \overline{a_na_{n-1}\cdots a_2a_1}_{(!)}\)와 같이 표현할 수 있습니다.

단, \(a_i\in [0,i)\)라는 조건이 있고, 특히 *\(a_1\)는 항상 0이라 정의합니다. 

 

촉이 좋으신 분들은 여기서 이제 설명할 내용을 눈치채실 수도 있습니다.

계승 진법의 '변환' 과정을 설명할 것입니다.

 

진법이 있을 때 당연하게 따라오는 것이고, 제가 맨 위에서 시전했던 내용이지요.

원리는 역시 이진법과 다를 바가 없습니다.

\(a_1 = n \mod 1, n'=\lfloor n/1 \rfloor\)

\(a_2 =n'\mod 2, n''=\lfloor n'/2\rfloor\)

\(a_3=n''\mod 3,n'''=\lfloor n''/3\rfloor\)

.

.

.

을 반복하시면 되겠습니다.

 

bdaec 순열을 생각합시다.

맨 위에서 구했던 것을 생각하면 \(\overline{12010}_{(!)}\)으로 대응될 것이란 사실을 알 수 있습니다.

그러면 bdaec를 우선 \((a,b,c,d,e)\rightarrow(0,1,2,3,4)\)로 매칭시킵니다.

그러면 순열 13042라고 불러줄 수 있습니다.

이제 각 자리보다 아래자리에서 자신보다 작은 숫자의 개수로 자릿수를 설정해봅시다.

\(1\rightarrow 1\)

\(3\rightarrow 2\)

\(0\rightarrow 0\)

\(4\rightarrow 1\)

\(2\rightarrow 0\)

가 됩니다. 그러면 정확히 \(\overline{12010}_{(!)}\)가 나온다는 것을 알 수 있습니다.

이를 십진법으로 전개해주면, \(0\cdot 0!+1\cdot 1!+0\cdot 2!+2\cdot 3!+1\cdot 4!=0+1+0+12+24=37\)이 됩니다.

이 상태에서 기수를 0번이 아닌 1번부터 하기에 1을 더해주면 됩니다.

 

와 웅장이 가슴해진다... 이렇게 적고서 위키피디아에 순열과의 관계를 읽어봤는데(전에 추상대수에 대해 다룬 글 몇개를 읽어보면 대략 뭔 소린지 감 잡는데 무리가 없다), 완전히 똑같은 얘기를 하고 있어서 놀랐다.

게다가 +1 더하는 부분에 적당한 의미를 찾지 못해 헤매이고 있었는데, "이 알고리즘에서, ‘집합의 〜번째 원소’란 0번째부터 센다."라고 위키피디아도 걍 1 더하면 되는 듯 이 모양으로 답한 것까지 똑같았다. ㅋㅋㅋㅋ

암튼...

www.numdam.org/article/BSMF_1888__16__176_0.pdf 여기를 참고하면 샤를앙주 레장의 구체적인 연구를 확인할 수 있다. 다만, 불어를 하지 못하는 사람은 읽을 수 없다는 점이 함정이다.

'기타' 카테고리의 다른 글

kmo 오일러 1차  (0) 2021.06.11
맥북 누전..!  (2) 2021.05.18
Groups  (2) 2021.03.31
CSES  (2) 2021.03.12
Xcode 사용자를 위한 C/C++ 이용법 및 설정  (4) 2021.01.27
profile

잡글 가득 블로그

@도훈.

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...