Esto parece una simple solicitud, pero google no es mi amigo porque "partición" anota un montón de visitas en la base de datos y el espacio del sistema de archivos.¿Enumerar todas las k-particiones de 1d array con N elementos?
Necesito enumerar todas las particiones de una matriz de N valores (N es constante) en k sub-arrays. Las sub-matrices son solo eso: un índice inicial y un índice final. Se conservará el orden general de la matriz original.
Por ejemplo, con N = 4 y 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)
Y 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)
Estoy bastante seguro de que esto no es un problema original (y no, no es tarea), pero me gustaría hacerlo por cada k < = N, y sería genial si los pases posteriores (a medida que k crece) aprovechen los resultados anteriores.
Si tienes un enlace, por favor comparte.
Parece sencillo con k = 2; ¿puedes publicar un ejemplo con una k más alta, preferiblemente un valor más alto de n, para que la pregunta sea más clara? – Amarghosh
Su ejemplo tiene la misma partición para (0, 4) y (4, 0) a saber, ¿abcd es el previsto? –
Andrew, las particiones son diferentes. Uno es | abcd y el otro es abcd | (el bit vacío está en los extremos opuestos). –