3
와 호프스 태터 Q 순서는 내가 재귀 정의를 사용하여 Hofstadter's Q Sequence을 구현하려고 해요 : 넷째, 재귀
Q(1) = 1
Q(2) = 1
Q(n) = Q(n - Q(n-2)) + Q(n - Q(n-1)) for n > 2
나는
n > 3
에 대한 잘못된 결과를 얻을. 여기에 지금까지이 작업은 다음과 같습니다
: Q recursive
dup 3 <
if
drop 1
else
dup dup 2dup 2 - Q - Q -rot 1- Q - Q +
then ;
온라인을 시도해보십시오http://ideone.com/PmnJRO (편집 : 이제 고정했다, 올바른 구현)
나는에 추가 값이 있기 때문에이 작동하지 않습니다 생각 스택이 Q
일 때마다 n
이 2
보다 크므로 -rot
이 예상대로 작동하지 않습니다.
이 작업을 수행하기위한 간단한 조정이 있습니까? 또는 n
에 대한 변수를 사용하여 다른 접근 방식을 사용해야합니까?
OEIS는 : A005185