Objectif
Vous obtenez un entier n
( n > 1
). Vous devez sortie le nombre de permutations des nombres entiers 1
à n
il y a qui commencent à la 1
fin à n
, et n'ont pas deux entiers consécutifs qui diffèrent par 1.
Alternativement, si vous prenez le graphique complet K_n
et supprimez les bords du chemin, 1-2-3-...-n
vous devez compter les chemins hamiltoniens de 1
à n
dans le graphique restant.
Les exemples utiliseront f(n)
pour une fonction qui accepte n
et génère le nombre de permutations valides, mais votre soumission peut être une fonction ou un programme.
Exemples
Pour n = 6
, une solution possible est1-3-5-2-4-6
Cependant, ce 1-3-5-2-6-4
n'est pas une solution valable car elle ne se termine pas par 6
.
En fait, pour n = 6
, il n'y a que 2 solutions ( 1-4-2-5-3-6
c'est l'autre).
Par conséquent f(6) = 2
.
Car n = 4
les seules permutations qui commencent 1
et se terminent par 4
sont 1-2-3-4
et 1-3-2-4
. Dans les deux, le 2
est adjacent au 3
, ce qui donne des entiers consécutifs qui diffèrent de 1. Par conséquent f(4) = 0
.
Cas de test
f(6) = 2
f(4) = 0
f(8) = 68
f(13) = 4462848
Critère gagnant
C'est le code-golf, la réponse la plus courte l'emporte.
Q_ser:=z + 2 z^6 + 10 z^7 + 68 z^8 + 500 z^9 + 4174 z^10 + 38774 z^11 + 397584z^12 + 4462848 z^13 + 54455754 z^14
Je passe un peu de temps à essayer d'utiliser les formules, mais je ne peux pas en composer une qui génère la séquence. Étonnant de voir l'exposant de z est l'entrée de la formule et le résultat est le facteur de multiplication. Celui qui peut en déduire la formule peut être celui avec la réponse la plus courte en octets
[2..n-1]
ne contiennent pas de deltas de1
ou-1
, vous devez également vérifier qu'aucun d'entre eux ne commence2
ou ne se termine parn-1
...