ZaZ
2003-11-27 20:23:52 UTC
Hola, estoy intentando romperme un poco la cabecita y aunque tengo alguna
idea, solo una funcionaría al 100% pero dejando la balanza del lado de
chupar memoria en lugar de cpu :)
A ver, el problema es sencillo y se me plantea cuando kiero llenar un CD de
N tamaño (pongamos 700mb) con archivos, de una cantidad indetermidada pero
con un tamaño determinado. Es decir, tengo x archivos de diferentes tamaños
y quiero escoger, sin importancia de orden, la combinación de archivos que
más se aproxime a la cantidad deseada, en este caso 700. Si no me equivoco
eso seria un n! posibilidades siendo n el número de archivos siempre que el
sumatorio de ellos sea lo más próximo a 700, pero esta n también es variable
porqué kizás cabe uno como kizás 1000 o ninguno... Como ya véis,
matemáticamente no acabo de saber cuantas posibilidades se podrían dar. En
programación, y hablando en términos de C que tampoco domino mucho sólo he
encontrado una posibilidad. Se trataría de usar una estructura de tipo arbol
(metiendose de lleno con los punteros :( ) y así poder hacer todas las
posibilidades, hacer todos los sumatorios posibles y de todos los finales de
arbol obtener las sumas más aproximadas a 700 (aunque me daría n! resultados
por tenerme en cuenta el orden)...
En fin... no tengo ni prisa ni nada.. lo hago por amor al arte y pq me
gustaría realizar este programa (que no lo he visto hecho por ninguna parte)
pq sería útil para mi.
Alguna idea para este programador novato? ;)
ZaZ
idea, solo una funcionaría al 100% pero dejando la balanza del lado de
chupar memoria en lugar de cpu :)
A ver, el problema es sencillo y se me plantea cuando kiero llenar un CD de
N tamaño (pongamos 700mb) con archivos, de una cantidad indetermidada pero
con un tamaño determinado. Es decir, tengo x archivos de diferentes tamaños
y quiero escoger, sin importancia de orden, la combinación de archivos que
más se aproxime a la cantidad deseada, en este caso 700. Si no me equivoco
eso seria un n! posibilidades siendo n el número de archivos siempre que el
sumatorio de ellos sea lo más próximo a 700, pero esta n también es variable
porqué kizás cabe uno como kizás 1000 o ninguno... Como ya véis,
matemáticamente no acabo de saber cuantas posibilidades se podrían dar. En
programación, y hablando en términos de C que tampoco domino mucho sólo he
encontrado una posibilidad. Se trataría de usar una estructura de tipo arbol
(metiendose de lleno con los punteros :( ) y así poder hacer todas las
posibilidades, hacer todos los sumatorios posibles y de todos los finales de
arbol obtener las sumas más aproximadas a 700 (aunque me daría n! resultados
por tenerme en cuenta el orden)...
En fin... no tengo ni prisa ni nada.. lo hago por amor al arte y pq me
gustaría realizar este programa (que no lo he visto hecho por ninguna parte)
pq sería útil para mi.
Alguna idea para este programador novato? ;)
ZaZ