Objectif
Vous obtenez un entier n( n > 1). Vous devez sortie le nombre de permutations des nombres entiers 1à nil y a qui commencent à la 1fin à n, et n'ont pas deux entiers consécutifs qui diffèrent par 1.
Alternativement, si vous prenez le graphique complet K_net supprimez les bords du chemin, 1-2-3-...-nvous devez compter les chemins hamiltoniens de 1à ndans le graphique restant.
Les exemples utiliseront f(n)pour une fonction qui accepte net 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-4n'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-6c'est l'autre).
Par conséquent f(6) = 2.
Car n = 4les seules permutations qui commencent 1et se terminent par 4sont 1-2-3-4et 1-3-2-4. Dans les deux, le 2est 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^14Je 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 de1ou-1, vous devez également vérifier qu'aucun d'entre eux ne commence2ou ne se termine parn-1...