경찰의 실
이 스레드에서, 당신의 작업은 순환 시리즈를 생성하기 위해 재귀 기반 프로그램 / 함수를 만드는 것입니다. 강도는 강도 스레드 에서 더 짧은 비 재귀 솔루션을 시도 합니다 .
도전 시놉시스
많은 언어에서 재귀 함수는 프로그래밍 작업을 크게 단순화 할 수 있습니다. 그러나 올바른 재귀에 대한 구문 오버 헤드는 코드 골프에서의 유용성을 제한 할 수 있습니다.
경찰 단일 정수 복용 프로그램이나 함수를 생성한다 n
처음 생성되며 n
, 정수 된 일련의 항목 만 이용 재귀 1 . 또한 엔트리를 안전한 것으로 표시하기 위해 시퀀스를 생성하는 짧은 비재 귀적 방법이 있는지 확인해야합니다.
강도는 찾기 위해 노력할 것입니다 짧은 , 같은 정수 시리즈를 생성, 동일한 언어로 프로그램이나 기능을 더 재귀 사용하지 않고 2 .
경찰의 제출이 10 일 (240 시간) 내에 크랙되지 않으면 경찰은 자신의 솔루션을 공개함으로써 더 짧은 비재 귀적 접근이 가능하다는 것을 실제로 증명할 것입니다. 그런 다음 제출물을 안전하다고 표시 할 수 있습니다 .
경찰 도전의 승자는 안전하다고 표시된 가장 짧은 ( golf-golf 에 따른 ) 재귀 기반 제출이 될 것입니다.
강도 도전의 승자는 대부분의 솔루션을 해독 한 강도가 될 것입니다.
1 : 구문에서 재귀 적이어야합니다. 예를 들어 테일 콜 최적화에 대해 걱정할 필요가 없습니다.
2 : 다시, 비 재귀 구문; 따라서 꼬리 호출 최적화 덕분에 재귀 솔루션을 게시하고 루프로 컴파일 할 수 없습니다.
제출 요건
각 제출에는 단일 정수 n
(0 또는 1 기준)가 사용됩니다. 제출은 선택한 n
정수 시리즈의 첫 번째 항목 을 출력하거나 반환합니다 . 이 정수 계열은에 의존해서는 안됩니다 n
. 입력 및 출력 방법은 재귀 적 접근 방식과 비재 귀적 접근 방식간에 다를 수 있습니다. 정수 계열은 길이가 5 이상인 결정적 계열 일 수 있습니다. 계열을 올바르게 설명해야합니다.
귀하의 제출물은 임의의 큰 n
일을 할 필요는 없지만 적어도 일을해야합니다 n=5
. 비재 귀적 접근 방식은 적어도 n
재귀 적 접근 방식 과 동일 하거나 n=2^15-1
더 작은 방식 으로 작동 할 수 있어야합니다 .
재귀
이러한 문제를 해결하기 위해 재귀는 자신 을 호출 하는 함수 (또는 함수와 유사한 구문)를 사용하여 원하는 시퀀스를 만드는 것으로 정의됩니다 . 재귀 깊이는 무한대로 가면서 무한대로 가야 합니다. 비 재귀 방법입니다 아무거나 하지 재귀.n
n
이론적으로 올바른 경우 하지만 시간이나 메모리 제약으로 인해 코드를 실행할 수 없다고 말할 수 있습니까?
n=5
계산되어야합니다
xfor
일부 가져 오기를 통해 사용할 수 있습니까?).이 언어는 경쟁 할 수 없습니다.
for
재귀에 의해 수행되는for
재귀 또는 루프입니까?