오늘 은 Collatz 함수 f 와 관련된 시퀀스 a를 살펴 보겠습니다 .
우리는 폼의 호출 시퀀스 (F (z)) ... F (Z), F (Z) Collatz 시퀀스 .
첫 번째 숫자 우리의 서열은, A (1) 이며, 0 . f를 반복 적용 하면 사이클 0 → 0 →…
우리가 아직 보지 못한 가장 작은 숫자는 1이므로 a (2) = 1 입니다. f를 반복해서 적용 하면 1 → 4 → 2 → 1 →…
이제 숫자 보이면서 2 다음에 작은 번호가되도록, 상기주기에서 A (3) = 3 사이클에 떨어지는 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 → 4 → 2 → 1 →…
위의 모든 사이클에서 우리는 4 와 5를 이미 보았 으므로 다음 숫자는 a (4) = 6 입니다.
이제 아이디어를 얻어야합니다. a (n) 은 모든 a (1),…, a (n-1) 에 대해 Collatz 시퀀스의 일부가 아닌 가장 작은 수입니다 .
양의 정수 n이 주어지면 a (n)을 반환 하는 프로그램이나 함수를 작성하십시오 . 바이트 단위의 최단 코드가 이깁니다.
테스트 케이스 :
1 -> 0
2 -> 1
3 -> 3
4 -> 6
5 -> 7
6 -> 9
7 -> 12
8 -> 15
9 -> 18
10 -> 19
50 -> 114
( OEIS 시퀀스 A061641 입니다.)
n
은 0을 기준으로 할 수 있습니까 ?
a(n+1) = a(n) odd: 3*a(n)+1, or a(n) even: a(n)/2
a
0 기반이 아닌 경우 나는 왜 당신이 "0 기반으로 말하는 것"인지 이해하지 못한다 :a(n) is the smallest number that was not part of any Collatz sequences for all a(0), …, a(n − 1).