Obbiettivo
Ti viene dato un numero intero n( n > 1). È necessario uscita quanti permutazioni degli interi 1a nci sono, che inizierà alle 1, fine a n, e non hanno due numeri interi consecutivi che differiscono dal 1.
In alternativa, se si prende il grafico completo K_ne si rimuovono i bordi del percorso, 1-2-3-...-nè necessario contare i percorsi hamiltoniani da 1a nnel grafico rimanente.
Gli esempi verranno utilizzati f(n)per una funzione che accetta ne genera il numero di permutazioni valide, ma l'invio può essere una funzione o un programma.
Esempi
Perché n = 6, una possibile soluzione è1-3-5-2-4-6
Tuttavia, 1-3-5-2-6-4non è una soluzione valida poiché non termina con 6.
In effetti, per n = 6, ci sono solo 2 soluzioni ( 1-4-2-5-3-6è l'altra).
Quindi f(6) = 2.
Per n = 4le uniche permutazioni che iniziano 1e finiscono in 4sono 1-2-3-4e 1-3-2-4. In entrambi 2è adiacente al 3, dando numeri interi consecutivi che differiscono di 1. Pertanto f(4) = 0.
Casi test
f(6) = 2
f(4) = 0
f(8) = 68
f(13) = 4462848
Criterio vincente
Questo è code-golf, vince la risposta più breve.
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^14Passo ora un po 'di tempo cercando di usare le formule, ma non riesco a comporne una che generi la sequenza. Incredibile vedere l'esponente di z è l'input della formula e il risultato è il fattore di moltiplicazione. Quello che può dedurre la formula da lì potrebbe essere quello con la risposta più breve in byte
[2..n-1]non contengono delta1o-1, dovete anche controllare che nessuna di esse inizi con2o finisca conn-1...