Mathematica, 58 ไบต์, เวลาพหุนาม ( n )
Abs[Sum[(k-1)Hypergeometric2F1[k,k-#,2,2](#-k)!,{k,#}]-1]&
มันทำงานอย่างไร
แทนที่จะวนซ้ำกับการเรียงสับเปลี่ยนโดยใช้กำลังดุร้ายเราใช้หลักการรวม - แยกออกเพื่อนับพวกมันรวมกัน
ให้ S เป็นเซตของพีชคณิตทั้งหมดของ [1, …, n] ด้วยσ 1 = 1, σ n = n , และให้ S iเป็นเซตของพีชคณิตσ∈ S เช่นนั้น | σ i - σ i + 1 | = 1. จากนั้นจำนวนที่เราต้องการคือ
| S | - | S 1 ∪⋯∪ S n - 1 | = ∑ 2 ≤ k ≤ n + 1; 1 ≤ i 2 <⋯ < i k - 1 < n (−1) k - 2 | S i 2 ∩⋯∩ S i k - 1 |
ตอนนี้ | S i 2 ∩⋯∩ S i k - 1 | เพียง แต่ขึ้นอยู่กับkและจำนวนญของการทำงานของดัชนีติดต่อกัน [ ฉัน1 , ฉัน2 , ... , ฉันk - 1 , ฉันk ] ที่เพื่อความสะดวกของเราจะแก้ไขปัญหาผม1 = 0 และฉันk = n โดยเฉพาะอย่างยิ่ง
| S i 2 ∩⋯∩ S i k - 1 | = 2 j - 2 ( n - k )!, สำหรับ 2 ≤ j ≤ k ≤ n ,
| S i 2 ∩⋯∩ S i k - 1 | = 1, สำหรับj = 1, k = n + 1
จำนวนของดัชนีดังกล่าวตั้งค่า [ i 1 , i 2 , …, i k - 1 , i k ] ด้วยj run คือ
( k - 1 C j - 1 ) ( n - k C j - 2 ), สำหรับ 2 ≤ j ≤ k ≤ n ,
1, สำหรับj = 1, k = n + 1
ผลที่ได้คือ
(-1) n - 1 + ∑ 2 ≤ k ≤ n ∑ 2 ≤ j ≤ k (−1) k - 2 ( k - 1 C j - 1 ) ( n - k C j - 2 ) 2 j - 2 ( n - k )!
ผลรวมภายในมากกว่าJสามารถเขียนได้ใช้hypergeometric 2 F 1ฟังก์ชั่น :
(−1) n - 1 + ∑ 2 ≤ k ≤ n (−1) k ( k - 1) 2 F 1 (2 - k , k - n ; 2; 2) ( n - k )!
ซึ่งเราใช้การแปลง Pfaff ที่ช่วยให้เราสามารถกำจัดพลังของ −1 โดยใช้ค่าสัมบูรณ์:
(−1) n - 1 + ∑ 2 ≤ k ≤ n (−1) n ( k - 1) 2 F 1 ( k , k - n ; 2; 2) ( n - k )!
= | −1 + ∑ 1 ≤ k ≤ n ( k - 1) 2 F 1 ( k , k - n ; 2; 2) ( n - k )! |
การสาธิต
In[1]:= Table[Abs[Sum[(k-1)Hypergeometric2F1[k,k-#,2,2](#-k)!,{k,#}]-1]&[n],{n,50}]
Out[1]= {1, 0, 0, 0, 0, 2, 10, 68, 500, 4174, 38774, 397584, 4462848,
> 54455754, 717909202, 10171232060, 154142811052, 2488421201446,
> 42636471916622, 772807552752712, 14774586965277816, 297138592463202402,
> 6271277634164008170, 138596853553771517492, 3200958202120445923684,
> 77114612783976599209598, 1934583996316791634828454,
> 50460687385591722097602304, 1366482059862153751146376304,
> 38366771565392871446940748410, 1115482364570332601576605376898,
> 33544252621178275692411892779180, 1042188051349139920383738392594332,
> 33419576037745472521641814354312790,
> 1105004411146009553865786545464526206,
> 37639281863619947475378460886135133496,
> 1319658179153254337635342434408766065896,
> 47585390139805782930448514259179162696722,
> 1763380871412273296449902785237054760438426,
> 67106516021125545469475040472412706780911268,
> 2620784212531087457316728120883870079549134420,
> 104969402113244439880057492782663678669089779118,
> 4309132147486627708154774750891684285077633835734,
> 181199144276064794296827392186304334716629346180848,
> 7800407552443042507640613928796820288452902805286368,
> 343589595090843265591418718266306051705639884996218154,
> 15477521503994968035062094274002250590013877419466108978,
> 712669883315580566495978374316773450341097231239406211100,
> 33527174671849317156037438120623503416356879769273672584588,
> 1610762789255012501855846297689494046193178343355755998487686}
[2..n-1]
ไม่มีเดลตาส1
หรือ-1
คุณต้องตรวจสอบว่าไม่มีพวกเขาเริ่มต้น2
หรือสิ้นสุดด้วยn-1
...