세 케레스의 순서


9

정의

  • a(1) = 1
  • a(2) = 2
  • a(n)에서 k>a(n-1)3 항 산술 진행을 피하는 가장 작은 수 입니다 a(1), a(2), ..., a(n-1), k.
  • 즉, a(n)가장 작은 숫자가 k>a(n-1)같은 존재하지 않는 x, y어디 0<x<y<na(y)-a(x) = k-a(y).

해결 된 예

의 경우 n=5:

우리는 a(1), a(2), a(3), a(4) = 1, 2, 4, 5

인 경우 산술 진행 a(5)=62, 4, 6형성하십시오.

인 경우 산술 진행 a(5)=71, 4, 7형성하십시오.

인 경우 산술 진행 a(5)=82, 5, 8형성하십시오.

인 경우 산술 진행 a(5)=91, 5, 9형성하십시오.

인 경우 a(5)=10산술 진행을 찾을 수 없습니다.

따라서 a(5)=10.

직무

주어진 n출력 a(n).

명세서

  • n 양의 정수가됩니다.
  • 당신이있는 경우, 1 인덱스 대신 0이 인덱스 사용할 수 있습니다 n될 수 있습니다 0. 인덱스가 0 인 경우 답에 기재하십시오.

채점

우리는 3 항 산술 진행을 피하려고 노력하고 3은 소수이므로 바이트 수 측면에서 코드는 가능한 한 작아야합니다 (즉, 짧아야 함).

테스트 케이스

테스트 케이스는 1- 인덱싱됩니다. 색인이없는 0을 사용할 수 있지만 그렇게하면 대답에 지정하십시오.

1     1
2     2
3     4
4     5
5     10
6     11
7     13
8     14
9     28
10    29
11    31
12    32
13    37
14    38
15    40
16    41
17    82
18    83
19    85
20    86
10000 1679657

참고 문헌


2
관련. (당신의 도전을 올바르게 이해한다면)
Martin Ender

@MartinEnder 당신은 나의 도전을 올바르게 이해했습니다.
Leaky Nun

답변:



6

하스켈, 37 36 32 바이트

0 기반 인덱스를 사용하여 OEIS 항목에 제공된 수식을 사용합니다. @nimi에게 4 바이트 감사합니다!

a 0=1;a m=3*a(div m 2)-2+mod m 2

3

파이썬 3, 28 바이트

lambda n:int(bin(n)[2:],3)+1

인수를 통해 입력을 받아 결과를 반환하는 익명 함수입니다. 이것은 인덱스가 0입니다.

작동 원리

lambda n    Anonymous function with input zero-indexed term index n
bin(n)      Convert n to a binary string..
...[2:]     ...remove `0b` from beginning...
int(...,3)  ...convert from base-3 to decimal...
...+1       ...increment...
:...        and return

Ideone에서 사용해보십시오


2

파이썬 3, 113 바이트

def f(n):
 i=1;a=[]
 for _ in range(n):
  while any(i+x in[y*2for y in a]for x in a):i+=1
  a+=[i]
 return a[n-1]

무시 했어!


2

루비, 28 24 바이트

0 기반 인덱스를 사용하여 Dennis와 동일한 방법을 사용합니다.

->n{n.to_s(2).to_i(3)+1}

repl.it에서 테스트 케이스를 실행하십시오. https://repl.it/Cif8/1



0

자바 8, 52 46 바이트

인덱스가 0입니다.

i->Integer.valueOf(Integer.toString(i,2),3)+1;

필요는 return없지만 나중에 세미콜론이 필요합니다
Leaky Nun

세미콜론은 계산되지 않는다는 입니다. 어느 쪽이든 바꿀 수 있지만, 세미콜론을 합의하고 있습니까?
Justin Justin

어, 그게 그들이 말한 것입니다. 컨센서스가 그런지 모르겠습니다.
Leaky Nun

좋아, 리턴 + 세미콜론은 어쨌든 이전보다 짧습니다 :)
Justin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.