Questa sembra una semplice richiesta, ma Google non è mio amico perché "partizione" segna un sacco di successi nello spazio del database e del filesystem.Enumerare tutte le k-partizioni dell'array 1d con N elementi?
Ho bisogno di enumerare tutte le partizioni di un array di valori N (N è costante) in k sotto-array. I sotto-array sono solo questo: un indice iniziale e un indice finale. L'ordine generale dell'array originale verrà mantenuto.
Ad esempio, con N = 4 e k = 2:
[ | a b c d ] (0, 4)
[ a | b c d ] (1, 3)
[ a b | c d ] (2, 2)
[ a b c | d ] (3, 1)
[ a b c d | ] (4, 0)
E con k = 3:
[ | | a b c d ] (0, 0, 4)
[ | a | b c d ] (0, 1, 3)
:
[ a | b | c d ] (1, 1, 2)
[ a | b c | d ] (1, 2, 1)
:
[ a b c d | | ] (4, 0, 0)
Sono abbastanza sicuro che questo non è un problema originale (e no, non è compito a casa), ma mi piacerebbe farlo per ogni k < = N, e sarebbe bello se i passaggi successivi (come k cresce) hanno approfittato dei risultati precedenti.
Se si dispone di un collegamento, si prega di condividere.
Sembra semplice, con k = 2; puoi pubblicare un esempio con un k più alto, preferibilmente un valore più alto di n, in modo che la domanda sia più chiara? – Amarghosh
L'esempio ha la stessa partizione per (0, 4) e (4, 0) e cioè, abcd è quello previsto? –
Andrew, le partizioni sono diverse. Uno è | abcd e l'altro è abcd | (il bit vuoto è alle estremità opposte). –