Angka subfaktorial atau rencontres ( A000166 ) adalah urutan angka yang mirip dengan angka faktorial yang muncul dalam kombinatorik permutasi. Khususnya n th subfactorial ! N memberikan jumlah derangements dari satu set n elemen. Gangguan adalah permutasi di mana tidak ada elemen yang tersisa di posisi yang sama. Subfaktorial dapat didefinisikan melalui relasi rekurensi berikut:
!n = (n-1) (!(n-1) + !(n-2))
Faktanya, relasi perulangan yang sama berlaku untuk faktorial, tetapi untuk subfaktorial kita mulai dari:
!0 = 1
!1 = 0
(Untuk faktorial yang kita miliki, tentu saja, 1! = 1. )
Tugas Anda adalah menghitung ! N , diberikan n .
Aturan
Seperti faktorial, subfaktorial tumbuh dengan sangat cepat. Tidak apa-apa jika program Anda hanya dapat menangani input dan sedemikian rupa sehingga ! N dapat diwakili oleh tipe nomor asli bahasa Anda. Namun, algoritma Anda harus secara teori berfungsi untuk arbitrary n . Itu berarti, Anda dapat mengasumsikan bahwa hasil integral dan nilai menengah dapat diwakili dengan tepat oleh bahasa Anda. Perhatikan bahwa ini tidak termasuk konstanta e jika disimpan atau dihitung dengan presisi terbatas.
Hasilnya perlu bilangan bulat yang tepat (khususnya, Anda tidak dapat memperkirakan hasilnya dengan notasi ilmiah).
Anda dapat menulis sebuah program atau fungsi dan menggunakan salah satu metode standar untuk menerima input dan memberikan output.
Anda dapat menggunakan bahasa pemrograman apa pun , tetapi perhatikan bahwa celah ini dilarang secara default.
Ini adalah kode-golf , sehingga jawaban terpendek yang valid - diukur dalam byte - menang.
Uji Kasus
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