거의 Heronian 등변 삼각형 형태의 정수 길이를 갖는 삼각형이고 n-1
, n
그리고 n+1
도 정수 영역을 갖는다. 처음 몇 가지는 :
3, 4, 5 -> 6
13, 14, 15 -> 84
51, 52, 53 -> 1170
퀘스트 : n
트리플 을 출력하는 가장 짧은 프로그램을 생성하십시오 . (힌트 : 이것은 알려진 순서입니다).
수상자는 2014 년 5 월 2 일에 선정됩니다.
거의 Heronian 등변 삼각형 형태의 정수 길이를 갖는 삼각형이고 n-1
, n
그리고 n+1
도 정수 영역을 갖는다. 처음 몇 가지는 :
3, 4, 5 -> 6
13, 14, 15 -> 84
51, 52, 53 -> 1170
퀘스트 : n
트리플 을 출력하는 가장 짧은 프로그램을 생성하십시오 . (힌트 : 이것은 알려진 순서입니다).
수상자는 2014 년 5 월 2 일에 선정됩니다.
답변:
0 1 2+⌊⎕*⍨2+√3
alephalpha 솔루션 과 동일한 접근 방식 이지만 수정 용어 대신 바닥을 사용합니다.
통근 연산자가 하나의 문자를 저장한다는 것을 지적한 algorithmshark 에 감사드립니다 .
(⍳3)
문자를 저장하고 0 1 2
통근을 사용하여 ⎕*⍨2+√3
다른 문자를 저장하고 저장할 수 있다고 확신합니다 .
⍳3
수율이 1 2 3
높으므로 1 문자 더 깁니다.
2 4@~{.4*@-}*;.(\.)]p
stdin에 입력을 취하고 stdout에 양식으로 출력을 제공합니다.
[3 4 5]
시퀀스의 0 번째 요소가 [1 2 3]
(영역 0)이며 OEIS A003500 과 일치한다고 생각합니다. 합니다.
3 문자 절약을위한 Howard 덕분 입니다.
(.).)]
은 두 문자가 짧습니다. 당신이 시작하는 경우 또한, 2 4
당신 대체 할 수 \;
로 ;
및 추가 한 저장합니다.
2 4
취급 [3 4 5]
했으며 따라서 오프셋을 악용하는 다른 방법을 발견하지 않은 것이 당황합니다. 감사.
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
$
파이썬에서 상당히 장황한 구현
[(a-1,a,a+1)for a in(int((2+3**.5)**t+(2-3**.5)**t+.1)for t in range(N))][-1]
N
는 가치 로 대체해야 합니까? 프로그램은 입력을 요구하지 않습니다.
3,3mq))ri#if+p
CJam의 첫 번째 버전은이 문제보다 10 일이 지났지 만 사용중인 모든 기능이 이전에 존재했는지 여부는 알 수 없습니다. 어쨌든 도전은 공식적으로 종결되었으므로 ...
3mq e# Push √3.
)) e# Increment twice.
ri e# Read input and convert to integer.
# e# Raise 2+√3 to that power.
i e# Convert to integer, truncating the result.
3, e# Push [0 1 2]
f+ e# Add the previous number to each of these.
p e# Pretty-print the result.