subfactorial 또는 rencontres 번호 ( A000166는 ) 순열 조합론에 표시 팩토리얼 번호 유사한 일련의 숫자이다. 특히, N 번째 subfactorial ! N은 수주는 교란의 세트의 N 개의 요소. 변위는 요소가 동일한 위치에 남아 있지 않은 순열입니다. 하위 요인은 다음과 같은 반복 관계를 통해 정의 할 수 있습니다.
!n = (n-1) (!(n-1) + !(n-2))
사실, 계승에 대해 동일한 재발 관계가 유지되지만 하위 계승에 대해서는 다음과 같이 시작합니다.
!0 = 1
!1 = 0
(계승의 경우 물론 1! = 1 입니다.)
당신의 작업은 계산하는 것이다 ! n은 주어진 N .
규칙
계승과 마찬가지로 하위 계승도 매우 빠르게 자랍니다. 프로그램은 입력을 처리 할 수있는 경우는 괜찮 N 하도록을 ! N 언어의 기본 숫자 형식으로 표현 될 수있다. 그러나 알고리즘 은 이론적으로 임의의 n에 대해 작동해야합니다 . 즉, 통합 결과와 중간 값을 해당 언어로 정확하게 표현할 수 있다고 가정 할 수 있습니다. 유한 정밀도로 저장 또는 계산되는 경우 상수 e 는 제외됩니다 .
결과는 정확한 정수 여야합니다 (특히 과학적 표기법으로 결과를 근사화 할 수 없음).
사용자가 쓸 수 프로그램이나 함수를 상기의 어떠한 사용도 표준 방법 의 입력을 수신하고 출력을 제공한다.
모든 프로그래밍 언어를 사용할 수 있지만 이러한 허점 은 기본적으로 금지되어 있습니다.
이것은 code-golf 이므로 바이트 단위로 측정 된 가장 짧은 유효한 답변이 이깁니다.
테스트 사례
n !n
0 1
1 0
2 1
3 2
4 9
5 44
6 265
10 1334961
12 176214841
13 2290792932
14 32071101049
20 895014631192902121
21 18795307255050944540
100 34332795984163804765195977526776142032365783805375784983543400282685180793327632432791396429850988990237345920155783984828001486412574060553756854137069878601