ตัวเลขsubfactorialหรือrencontres ( A000166 ) เป็นลำดับของตัวเลขที่คล้ายกับตัวเลข factorial ซึ่งแสดงใน combinatorics ของพีชคณิต โดยเฉพาะอย่างยิ่งที่subfactorial ลำดับที่n ! nให้จำนวนderangementsของชุดองค์ประกอบn Derangement เป็นการเปลี่ยนแปลงที่ไม่มีองค์ประกอบใดอยู่ในตำแหน่งเดียวกัน สามารถกำหนด subfactorial ผ่านความสัมพันธ์การเกิดซ้ำดังต่อไปนี้:
!n = (n-1) (!(n-1) + !(n-2))
ในความเป็นจริงความสัมพันธ์ที่เกิดซ้ำกันนั้นมีไว้สำหรับปัจจัย แต่สำหรับ subfactorial เราเริ่มต้นจาก:
!0 = 1
!1 = 0
(สำหรับแฟคทอเรียลที่เรามีแน่นอน1! = 1 )
งานของคุณคือการคำนวณ! nให้n
กฎระเบียบ
เช่นเดียวกับแฟคทอเรียล subfactorial นั้นเติบโตอย่างรวดเร็ว มันเป็นเรื่องปกติถ้าโปรแกรมของคุณสามารถจัดการปัจจัยการผลิตnเช่นนั้น! nสามารถแสดงโดยแบ่งตามชนิดจำนวนพื้นเมืองภาษาของคุณ อย่างไรก็ตามอัลกอริทึมของคุณจะต้องทำงานในทฤษฎีสำหรับnเอง นั่นหมายความว่าคุณอาจสันนิษฐานได้ว่าผลลัพธ์ที่สมบูรณ์และค่ากลางสามารถแสดงด้วยภาษาของคุณได้อย่างแม่นยำ โปรดทราบว่าสิ่งนี้จะไม่รวมค่าคงที่eหากเก็บหรือคำนวณด้วยความแม่นยำแน่นอน
ผลลัพธ์ต้องเป็นจำนวนเต็มที่แน่นอน (โดยเฉพาะคุณไม่สามารถประมาณผลลัพธ์ด้วยสัญกรณ์ทางวิทยาศาสตร์)
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและใช้วิธีการมาตรฐานใด ๆ ในการรับอินพุตและจัดเตรียมเอาต์พุต
คุณอาจใช้ภาษาการเขียนโปรแกรมใด ๆแต่โปรดทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามตามค่าเริ่มต้น
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง - วัดเป็นไบต์ - ชนะ
กรณีทดสอบ
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