SUDSI 서열 ( 스와 m, D ifference, s의 WAP, I ncrement)이 나타날 오히려 혼란 동작을 보이는 것을 호기심 정수 시퀀스이다. 다음과 같이 생성 될 수 있습니다.
S를 자연수의 무한한 목록으로 보자 1 2 3 4 5 6 ...
. 하자 S가 나는 한 인덱싱 나타내고 I 의 번째 요소 S . 따라서 초기에 S 1 은 1, S 2 는 2 등입니다 ( S 0 은 없음 ).
S 1 및 S 2로 시작 ...
- 합계를 계산하십시오.
sum = S1 + S2
- 절대 차이를 계산하십시오 (큰 값에서 작은 값을 뺀 값).
diff = |S1 - S2|
합계와 차이의 인덱스 에서 S 의 두 값을 바꾸십시오 .
swap(Ssum, Sdiff)
작업중 인 S 의 인덱스를 증가시킵니다 . 다음에 S 2 와 S 3 의 합과 차이를 계산 하고 그 이후의 시간은 S 3 과 S 4 등이됩니다.
- 이 과정을 무기한 반복하십시오.
이 프로세스가 적용되는 S 의 처음 몇 단계는 다음과 같습니다 . 대괄호 []
는 합산되고 차이가 나는 두 값을 둘러 쌉니다.
원본 S :
[1 2] 3 4 5 6 7 8 9 10 11 12 ...
이후 S 3 ( 3 = 1 + 2
)와 S (1) ( 1 = |1 - 2|
) 교환된다 :
3 [2 1] 4 5 6 7 8 9 10 11 12 ...
후 S (3) 와 S (1)는 교환된다 :
1 2 [3 4] 5 6 7 8 9 10 11 12 ...
후 S (7) 와 S (1)는 교환된다 :
7 2 3 [4 5] 6 1 8 9 10 11 12 ...
후 S (9) 와 S (1)는 교환된다 :
9 2 3 4 [5 6] 1 8 7 10 11 12 ...
이후 S 11 와 S (1)는 교환된다 :
11 2 3 4 5 [6 1] 8 7 10 9 12 ...
후 S (7) 및 S (5)는 교환된다 :
11 2 3 4 1 6 [5 8] 7 10 9 12 ...
기타
SUDSI 시퀀스는 이러한 각 목록에서 첫 번째 요소의 시퀀스로 정의됩니다. 따라서 SUDSI 시퀀스의 처음 몇 항은 1 3 1 7 9 11 11
입니다.
다음은 SUDSI 시퀀스의 첫 200 개 용어입니다 (한 줄에 20 개).
1 3 1 7 9 11 11 11 15 15 19 19 19 19 19 19 19 19 19 19
19 19 19 19 19 19 19 19 57 59 59 59 59 59 59 59 59 59 77 79
81 83 85 87 89 91 91 91 91 91 91 91 91 91 91 91 91 91 115 115
121 123 125 127 127 127 127 127 137 139 141 143 145 147 147 147 147 147 147 147
147 147 147 147 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167
167 167 167 167 209 211 211 211 211 211 221 223 223 223 223 223 223 223 223 223
223 223 243 243 243 243 243 243 257 259 261 263 263 263 263 263 263 263 263 263
263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263
263 263 325 327 329 331 331 331 331 331 331 331 331 331 349 351 351 351 351 351
361 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363
미래의 용어를 어떻게 예측할 수 있을지는 분명하지 않습니다. 용어는 항상 홀수이고 감소하지 않고 (두 번째 용어 이후), 일부 숫자는 여러 번 반복된다고 말하는 것이 안전합니다.
도전
양의 정수 n 을 취하고 SUDSI 시퀀스 의 n 번째 항을 인쇄하거나 리턴 하는 프로그램 또는 함수를 작성하십시오 . 예를 들어, n 이 1이면 출력은 1
이고, n 이 2이면 출력은 3
이고, n 이 200이면 출력은 363
입니다.
일반적인 방법으로 입력하십시오 (stdin / command line / function arg). 바이트 단위
의 최단 답변 이 이깁니다.
(이 사이트는 UTF-8로 인코딩하지만 원하는 기존 인코딩을 사용할 수 있습니다.)
마티 보너스 : (바운티 바운티 가능)
- SUDSI 시퀀스에 대해 자세히 알려주세요. 어떤 숫자가 그 숫자이고 어떤 숫자가 있는지 (그리고 이와 같은 것들)의 기본 패턴은 무엇입니까? (그런데 OEIS에서 SUDSI를 찾을 수 없었습니다 .)