팩토리오의 지하벨트는 최대로 떨어트릴 수 있는 거리 이상을 잇기 위해선 반드시 <>(2블럭)의 형태로 이어져야 한다


이를 하나의 단위로 보면 노랑벨트는 반복부분이 3단위(사이거리 2+지하벨트 차지공간 1, 총 6블럭)이 되고 빨벨은 4단위, 파랑은 5, 녹색은 6이 된다

이 때 자연스럽게 가장 작은 반복부분을 가진 벨트에 따라 뜨개질 할 수 있는 최대한의 벨트 종류가 정해짐을 알 수 있다

바닐라 팩토리오의 경우 노랑 빨강 파랑 초록이 각각 반복부분 3,4,5,6을 가짐을 미리 확인하였다

이때 뜨개질에 참여하는 지하벨트들의 반복부분 최소 공배수까지 겹치는 부분이 없어야 무한히 이어질 수 있으므로 60단위까지 겹치지 않아야 함을 알 수 있다

벨트끼리는 겹칠 수 없으므로 시작지점을 단위 0, 1, 2, 3이라 하자

최대한의 거리를 벌려서 지하벨트를 설치한다 하였을때 랜덤으로 배치하여도 모든 경우의 수 에서 60단위 이하에 겹치는 부분이 있음을 확인 할 수 있다

이번엔 최대거리 이하로 아무렇게나 배치 할 수 있다 해보자

노벨은 반복부분 1,2,3을 가지는데 1은 사이에 다른 지하벨트가 들어갈 수 없으니 제외하면 2,3이 된다.
같은방식으로 녹벨은 2,3,4,5,6을 가지게 된다

여기서 각 벨트들 끼리 겹치는 부분이 있음을 알 수 있다

반복부분이 2나 3인 녹벨은 노벨과 겹치지 않는 노벨로 치환 할 수 있지 않을까?
마찬가지로 4인 녹벨은 빨벨, 5인 녹벨은 파벨로 치환 할 수 있지 않을까?

한번 생각해보자
3456의 반복 배치를 가진 녹벨이 있다 반복부분의 총 길이는 18단위가 된다

이것을 바꾸면 노>빨(3+18x위치) 빨>파(7+18x위치) 파>녹(12+18x위치) 녹>노(18+18x위치)로 바뀌게 된다(단, x는 0보다 크거나 같은 정수)

이렇게 변경하면 노벨>빨벨>파벨>녹벨>노벨의 하나의 흐름을 가진 벨트가 된다

이 사이에 최대한의 길이를 가진 노벨(노랑단일의 흐름을 가짐)을 넣어보자

한 단위를 한칸으로 잡고 서로 겹치면 안되니 두번째 칸 부터 노벨을 넣어보자(□=빈칸)

□ 노벨(노랑단일) 노>빨(노빨파녹) □ 노벨(노랑단일) □ 빨>파(노빨파녹) 노벨(노랑단일) □ □ 노벨(노랑단일) 파>녹(노빨파녹) □ 노벨(노랑단일) □ □ 노벨(노랑단일) 녹>노(노팔파녹)
의 배치를 할 수 있다

그런데 실제로 반복거리가 3인 녹벨을 노벨로 바꾸었다면 3번째 칸에서 노랑단일벨트의 흐름과 노>빨 흐름이 섞여버리게 된다

이를 어떻게 해결할까?

겹치는 부분을 빨/파/녹의 벨트로 바꾸면 해결이 된다

하지만 겹친 흐름이 3456녹벨을 치환한 노빨파녹의 흐름이었으니 녹벨로 바꿔주자

그렇다면 2번째칸과 5번째칸이 노>녹과 녹>노가 되었으니 3번째칸의 노>빨과 상호작용을 하지 않게 된다

이렇게 치환이 가능하단걸 알게 되었다

그렇다면 노빨파녹이 랜덤으로 섞인 배치에서 어떻게 흐름을 나눌 수 있을까?

정답은 간단하다.
어떤 노빨파녹흐름 전부의 반복부분이 3 이하라면 그것은 노랑벨트의 흐름과 같다.(전부 노벨로 치환 가능)
어떤 노빨파녹흐름의 반복부분중 하나라도 4가 있고 5가 없다면 빨강벨트의 흐름과 같다(전부 빨벨로 치환 가능)
어떤 노빨파녹흐름의 반복부분중 하나라도 5가 있고 6이 없다면 파랑벨트의 흐름과 같다(전부 파벨로 치환 가능)
어떤 노빨파녹흐름의 반복부분중 하나라도 6이 있다면 녹색벨트의 흐름과 같다(전부 녹벨로 치환 가능)

그렇다면 4종류의 뜨개질을 하려면 랜덤한 지하벨트의 흐름이 4종이 되어야 함을 알 수 있다

성공적으로 배치를 하였다(4종벨트의 뜨개질이 무한히 가능하다) 가정하자

각 흐름들은 서로 겹치면 안되니 반드시 겹치지 않는 배치 규칙을 찾아보면

1.만약 첫번째 흐름의 중간에 노>?인 부분이 있다고 가정하자
그렇다면 다른 흐름들은 첫번째 흐름이 ?>노인 부분이 나올때까지 노>?인 부분이 나와선 안된다
만약 나오게 된다면 흐름이 섞여버리게 된다

2.마찬가지로 첫번째 흐름이 ?>노인 부분이 있으면 첫번째 흐름이 노>?인 다음 부분까지 다른 흐름들은 ?>노인 부분이 나와선 안된다

3. 각 흐름들은 중복되지 않는 색깔의 흐름을 가져야 한다

어떤 노빨파녹의 흐름이 노랑의 흐름이라 가정하고 연속된 두 구간의 길이를 재어보자
이 구간은 노랑벨트의 제한으로 인해 최소 3의 거리(노>노,노>노,노>노)를 가지고, 최대 7의 거리(노>노□□노>노□□노>노)인것을 알 수 있다

마찬가지로 빨강은 3~9, 파랑은 3~11, 녹색은 3~13을 가진다는걸 알 수 있다

여기서 노랑을 제외한 특정 흐름이 연속된 3칸을 점유하면 노랑의 흐름이 존재 할 수 없음을 알 수 있다.(노벨의 사이간격은 2칸)

그렇다면 노랑의 흐름속에 다른 흐름을 배치해보자

최소간격인 3의 경우 연속된 3칸을 노랑흐름이 전부 점유하고 있으니 사이간격이 3 이상인 벨트만 이 구간을 지날 수 있다

다행히도 빨벨이상이면 이 구간을 넘을 수 있다

그렇다면 다른 흐름들을 어떻게 배치해야 할까?

어떤 흐름이 빨강의 흐름이려면 반복구간이 5 미만. 즉, 사이 간격이 4 미만이어야 한다

팩토리오에는 유리수나 실수의 칸을 배치하지 못하니 빨강의 흐름은 사이간격이 최대 3이어야 한다

즉, 빨 노 노 노 빨의 배치가 아니면 빨강의 흐름이 지나가지 못한다.

그렇다면 이어서 파랑의 흐름을 배치해보자

파랑의 흐름은 사이간격이 최대 4다

그런데 위의 빨 노 노 노 빨의 경우 사이간격이 5가 필요하다

그렇다면 처음 가정했던 노랑의 흐름의 연속된 두 구간이 최소길이를 가진다는 경우의 수는 4종류의 흐름을 성공적으로 배치할 수 있다는 가정과 모순이니 거짓이다

이어서 노랑의 흐름의 연속된 두 구간이 4의 길이를 가질때를 생각해보자

노랑의 흐름은 노노□노(대칭포함)의 배치를 가지니 위의 사례처럼 작은것부터 배치해보자

빨노노빨노의 경우 파랑이 들어가지 못하니 빨강도 최대길이를 가지게 해주자
빨□노노빨노가 되었으니 빨파노노빨노파가 가능하다

그런데 이러면 녹색의 흐름이 들어가지 못한다

위 구간의 길이는 7인데 녹색의 최대 사이간격은 5기때문

그렇다면 이것도 거짓이다

이어서 5일때를 가정하자

노노□□노의 경우 파□□노노파빨노□□빨의 배치가 가능하다

그렇다면 파□녹노노파빨노녹□빨이 되어 배치에 여유가 있는것처럼 보인다

하지만 왼쪽 빈칸의 경우 빨강이 들어가지 못하며 오른쪽 빈칸의 경우 파랑과 노랑 둘 중 하나가 배치될경우 다른 한쪽의 최대 길이를 넘어선다

노□노□노의 경우를 살펴봐도 마찬가지, 파□□녹노파노빨노녹□빨의 경우도 오른쪽 빈칸에 파랑과 노랑의 배치가 모순이다

그렇다면 6을 가정하자

노□노□□노(대칭포함)이다

배치를 해보면 빨□□노빨노□파노□□□파 까지 배치 할 수 있다

그런데 빨노□파노의 경우 빨강 옆으로 4칸을 건너야 한다

그렇다면 빨강흐름의 정의와 모순되니 빈칸에 빨강을 넣자

빨□□노빨노빨파노□□□파 가 되었는데, 마찬가지로 왼쪽 빈 두칸중 어느곳에도 파랑이 들어갈 수 없다

그렇다면 마지막, 최대 길이인 7만 남았다.

노□□노□□노에 배치를 해보자

빨□□노빨□노□파노□□□파가 된다

이번엔 여기에 녹색을 최대길이로 배치해보자

빨□□노빨□노녹파노□□녹파 라고 배치 할 수 있다

또 모순이 발생했다 오른쪽으로 빨강의 흐름이 갈 수 없다

이로써 모든 노랑색 흐름의 배치에서 모순이 발견되었다

즉, 처음 가정인 4종벨트의 뜨개질이 무한히 가능하다는 가정에 모순이 발생했으니 이 가정은 거짓이다.

따라서 4종벨트의 뜨개질은 무한히 할 수 없다.



솔직히 비약도 많고 모든 경우의 수를 다 대입한것도 아니라서 엄밀한 정리는 아니지만 시간 되게 오래 걸렸음... 고생추좀 해줘