https://arca.live/b/math/21981161


Q를 유리수 집합, Z를 정수 집합이라고 하자.

QxZ={ (a, b) | a∈Q, b∈Z}이다. 


그리고 QxZ의 두 원소 (a, b), (c, d)에 대해, (a, b)≤(c, d)를 ( (a<c) 또는( a=c이면서 b≤d ) )라고 정의하자.  (사전식 순서로 생각하면 된다.)


순서가 주어진 두 집합 A, B에 대해, 함수 g : A ->B 가 순서를 보존한다는 것은, 모든 A의 두 원소 a1, a2에 대해, (a1<a2 이면, g(a1)<g(a2) ) 라는 것을 의미한다. 


그러면, f : QxZ -> Q로 가는 순서를 보존하는 단사 함수(injection)가 존재하는가?

---------------------------------------------------------------------------------------------------------------------------------------------


함수를 다음과 같은 과정으로 구성합니다.

(1) 임의의 크기가 0이 아닌 열린 구간 (a, b) (구간을 정의하는 두 실수 a, b 에 대해서 {x | a<x<b} ) 내에서 정수를 순서를 보존하면서 대응시킬 수 있음을 보입니다.

(2) 모든 유리수를 (0, 1)구간의 유리수에 대응시킬 수 있음을 보입니다.

(3) (0, 1) 구간의 유리수를 서로 겹치지 않는 열린 구간들로 대응시키는, 순서를 보존하는 함수를 구성합니다.


그러면 (1), (2), (3) 을 통해서 문제에서 요구하는 단사 함수가 존재한다는 점을 알 수 있습니다.


우선 (1), (2)는  어렵지 않기 때문에 그림으로 대신하겠습니다.


v = rc / (r+c) 로, r과 c가 모두 유리수라면 v 역시 유리수가 되지요. 음수인 구간에 대해서도 마찬가지로 대응시켜주면 됩니다.


다음은 이진법 순환소수를 이용해서 (3)의 함수를 다음과 같이 귀납적으로 구성합니다.

(진법은 이진법이 아닌 다른 진법이라도 상관없습니다. 그리고 유한소수는 어차피 순환소수로 표시할 수 있으므로 별도로 취급하지 않았습니다.)


단계 1)

(0, 1) 의 유리수 중 순환마디 앞쪽 길이와 순환마디의 길이의 합이 2인 순환소수 (길이의 합이 1인 그런 소수는 (0, 1) 구간에 없으므로 생략했습니다) 의 숫자를 n 이라고 하고 (실제로는 0.011111... 하나밖에 없기는 합니다) 이러한 순환소수들을 크기 순서로 a_1, a_2, ..., a_n 으로 배열합니다.

(0, 1) 구간을 2n+1 개의 열린 구간 iv_1, iv_2, ..., iv_(2n+1) 으로 나누고 ( iv_k = { x | (k-1)/(2n+1) < x < k/(2n+1) } ), a_j 를 iv_(2j) 에 대응시킵니다. 그러면 모든 a_j 는 열린 구간에 순서가 보존되게 대응되고, a_j 에 대응된 열린 구간 사이에는 다른 열린 구간이 존재하게 됩니다.


단계 2)

단계 1에서 나타난 순환소수들을 a_1, a_2, ..., a_n 이라고 하고 (i < j 이면 a_i < a_j)  a_i 에 대응된 열린 구간을 iv_i 라고 하겠습니다. 


(0, 1) 의 유리수 중 순환마디 앞쪽 길이와 순환마디의 길이의 합이 3인 순환소수들 중 a_i 보다 크고 a_(i+1)보다 작은 수의 집합을 B_i 라 하겠습니다. 그러면 B_i = { b_i1, b_i2, ..., b_in } (j < k 일 때 b_ij < b_ik) 로 정렬할 수 있습니다.

iv_i = (l_i, u_i), iv_(i+1) = (l_(i+1), u_(i+1)) 이라고 하면, (u_i, l_(i+1))에 2n+1 개의 다음과 같은 열린 구간들을 설정할 수 있습니다.

ivi_k = (u_i + (k-1) / (2n+1) * (l_(i+1) - u_i), (u_i + k / (2n+1) * (l_(i+1) - u_i) )

그리고 b_ij 를 ivi_(2k) 에 대응시킵니다.

글로 써놓으니 눈이 어지러운데, 아래 그림과 같은 이야기입니다.


이렇게 되면 임의의 b_ij 가 순서가 대응되고 겹치는 열린 구간 하나에 대응되고, 각 열린 구간 사이에는 공간이 남게 됩니다.

a_1 보다 작은 수들과 a_n 보다 큰 수들도 마찬가지로 구간을 할당할 수 있으므로 생략합니다.


단계 k) (k ≥ 3)

단계 2에서와 마찬가지로, (0, 1) 의 유리수 중 순환마디 앞쪽 길이와 순환마디의 길이의 합이 k+1인 순환소수들을, 단계 k-1 까지에서 할당된 열린 구간들 사이에 집어넣고 마찬가지로 열린 구간들을 하나씩 할당합니다.


이렇게 되면 임의의 유리수가 열린 구간 하나에 대응되며, 열린 구간들은 서로 겹치지 않고 또 유리수의 순서를 보존합니다.


따라서 (3)의 함수를 구성할 수 있으므로 문제의 조건을 만족하는 대응관계를 만들 수 있습니다.