거의 평등 한 헤 로니아 삼각형 3, 4,

거의 Heronian 등변 삼각형 형태의 정수 길이를 갖는 삼각형이고 n-1, n그리고 n+1도 정수 영역을 갖는다. 처음 몇 가지는 :

 3,  4,  5 ->    6
13, 14, 15 ->   84
51, 52, 53 -> 1170

퀘스트 : n트리플 을 출력하는 가장 짧은 프로그램을 생성하십시오 . (힌트 : 이것은 알려진 순서입니다).

수상자는 2014 년 5 월 2 일에 선정됩니다.



답변

APL, 15 14 명

0 1 2+⌊⎕*⍨2+√3

alephalpha 솔루션 과 동일한 접근 방식 이지만 수정 용어 대신 바닥을 사용합니다.

통근 연산자가 하나의 문자를 저장한다는 것을 지적한 algorithmshark 에 감사드립니다 .


답변

Mathematica, 26, 22, 16 18 자

{0,1,2}+⌊(2+√3)^n⌋

답변

GolfScript ( 24 21 자)

2 4@~{.4*@-}*;.(\.)]p

stdin에 입력을 취하고 stdout에 양식으로 출력을 제공합니다.

[3 4 5]

온라인 데모

시퀀스의 0 번째 요소가 [1 2 3](영역 0)이며 OEIS A003500 과 일치한다고 생각합니다. 합니다.

3 문자 절약을위한 Howard 덕분 입니다.


답변

GNU dc , 30 19 바이트

9k3v2+?^0k1/p1+p1+p

이것은 @Howard의 APL 답변 과 동일한 트릭을 사용 하므로 단 하나의 항만 계산하면됩니다. stdin에서 n에 대한 입력을받습니다.

산출:

$ dc -e '9k3v2+?^0k1/p1+p1+p' <<< 1
3
4
5
$ dc -e '9k3v2+?^0k1/p1+p1+p' <<< 2
13
14
15
$ dc -e '9k3v2+?^0k1/p1+p1+p' <<< 3
51
52
53
$

답변

파이썬 77

파이썬에서 상당히 장황한 구현

[(a-1,a,a+1)for a in(int((2+3**.5)**t+(2-3**.5)**t+.1)for t in range(N))][-1]

답변

파이썬 3, 83 자

f=lambda t:4*f(t-1)-f(t-2)if t>2 else(4,14)[t-1];n=f(int(input()));print(n-1,n,n+1)

이것은 재귀 솔루션을 사용하여 다음과 같은 사실을 이용합니다 ( Wikipedia 에서 인용 ).

n의 후속 값은 이전 값에 4를 곱한 다음 그 값보다 먼저 값을 빼서 찾을 수 있습니다 (52 = 4 × 14-4, 194 = 4 × 52-14 등).


답변

JavaScript (ECMAScript 6)-52 자

f=x=>x?--x?4*f(x)-f(x-1):4:2
g=x=>[a=f(x)-1,a+1,a+2]

fn 번째 항 을 반환 하는 재귀 함수 와 g해당하는 삼중 항을 포함하는 배열을 반환하는 함수 를 정의합니다 .

자바 스크립트-41 자

for(a=2,b=4;--x;)b=-a+4*(a=b);[a-1,a,a+1]

글로벌 변수에 저장되도록 계산할 항을 예상 x하고 트리플을 콘솔에 출력합니다.