Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/07/2014, 03:54
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: Combinatoria con PHP

- Necesitas todas las disponibilidades distintas.Es decir, si tienes 3 habitaciones de [1,2,1] plazas, las disponibilidades distintas son [1,2].
- Se ordenan de mayor a menor disponibilidad
- Se recorre el array de disponibilidades creando árboles.En cada iteración,. la raiz del arbol es k , y se busca una combinación válida con las disponibilidades a partir de k.
- Si la suma de disponibilidades a una profundidad del árbol = número de habitaciones , es menor que el número de plazas requeridas, se elimina esa combinacion.
Esto incluye profundidad 1.Es decir, si se piden 2 plazas en 1 habitacion, y existen habitaciones de 1 plaza, significa que a profundidad 1 del arbol, la suma de disponibilidades (1) es menor que el numero requerido (2 plazas), por lo que no se continua con el arbol (no se comprueba el arbol con raiz 1).


Esto es una forma de hacerlo que evita hacer combinatoria, aunque sigue dando resultados absurdos que habría que filtrar, pero eso no especificas como.Si hay habitaciones de 5 plazas, y alguien pide 2 habitaciones para 2 personas, no tiene logica que se le ofrezcan 2 habitaciones de 5 plazas.