introduzione
Osserviamo la seguente sequenza (numeri interi non negativi):
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, ...
Ad esempio, prendiamo i primi tre numeri. Questi sono 0, 1, 2
. I numeri utilizzati in questa sequenza possono essere ordinati in sei modi diversi:
012 120
021 201
102 210
Quindi, supponiamo che F (3) = 6 . Un altro esempio è F (12) . Questo contiene i numeri:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
O la versione concatenata:
01234567891011
Per trovare il numero di modi per riorganizzarlo, dobbiamo prima guardare alla lunghezza di questa stringa. La lunghezza di questa stringa è 14
. Quindi calcoliamo 14! . Tuttavia, ad esempio, quelli possono scambiare posti senza interrompere la stringa finale. Ci sono 2 zero, quindi ce ne sono 2! modi per scambiare gli zeri senza interrompere l'ordine. Ce ne sono anche 4, quindi ce ne sono 4! modi per cambiare quelli. Dividiamo il totale per questi due numeri:
Questo ha 14! / (4! × 2!) = 1816214400 modi per disporre la stringa 01234567891011
. Quindi possiamo concludere che F (12) = 1816214400 .
L'obiettivo
Dato N , uscita F (N) . Per quelli che non hanno bisogno dell'introduzione. Per calcolare F (N), prima concateniamo i primi N numeri interi non negativi (ad es. Per N = 12, la stringa concatenata sarebbe 01234567891011
) e calcoliamo il numero di modi per disporre questa stringa.
Casi test
Input: Output:
0 1
1 1
2 2
3 6
4 24
5 120
6 720
7 5040
8 40320
9 362880
10 3628800
11 119750400
12 1816214400
13 43589145600
14 1111523212800
15 30169915776000
Nota
Il calcolo della risposta deve essere calcolato entro un termine di 10 secondi , la forza bruta non è consentita .
Questo è code-golf , quindi vince l'invio con il minor numero di byte!
10
cifre sono 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
. Dieci cifre diverse, quindi il risultato è 10 !.
0
caso stia gettando via il mio conto (stupide stringhe vuote).
F(N)
non lo sia O(N!)
e che lo log F(N)
sia, O(log N!)
ma quelli sono solo dei sospetti ...
10
corretto? Sembra che dovrebbe essere inferiore a 10 !, poiché è lì che iniziano le cifre ripetute.