[hm] [org] Autobús ida y vuelta desde Barcelona
d1d4c
d1d4c en aktivix.org
Jue Ago 19 12:13:06 CEST 2010
El 18/08/10 20:51, d1d4c escribió:
.../
> Si el <número de personas apuntadas> / <precio del hackbus> es menor
> que el menor de los <máximo dispuesto a pagar>, hay hackbus para
> todas.
>
> Si no, se repite la operación tantas veces como sea necesario
> descartando las que queden fuera porque el <precio por persona> sea
> mayor que el <máximo dispuesto a pagar> correspondinetes.
>
> No habrá hackbus sólo si el <precio por persona> es más alto que
> el/los mayor de los <maximo dispuesto a pagar>.
Me he quedado pensando un poco en esto, y veo que se puede mejorar. Me
lo he tomado como si de un sudoku se tratara...
La cuestión es que si se da el caso de que sí hay hackbus, pero que
algunas se quedan fuera por ser mayor el precio del billete de lo que
están dispuestas a pagar... porqué iban a quedarse fuera habiendo
plazas? que se suban y paguen lo que puedan, no? eso al mismo tiempo
aumenta las posibilidades de diversión (cuantos más seamos, más nos
reiremos), y baja el precio final del billete...
Aunque supone que algunas paguen más que otras... pero las que pagan más
no tienen nada que recriminar, ya que si no fuera por las que pagan
menos, ellas todavía iban a tener que pagar más (siempre dentro del
margen de lo que estén dispuestas a pagar).
Pongamos el caso que sólo se apuntan 35 en vez de 44. Si hubieran sido
44 hubiera salido a 11€, pero al ser 35 el precio sube a 13,83, sin
embargo, si de esas 35 hay 5 que no quieren/pueden pagar más de 11€, si
se quedasen fuera, serían 30 pagando 16,13€ (si es que todas esas
quisieran/pudieran pagar eso), pero si se subiesen las 5 pagando 11€, al
resto el billete les bajaría a 14,30€ y nadie se quedaría sin hackbus
aun no habiendo llegado a las 44 personas, sino a las 35... y teniendo
en cuenta que el de linea sale a 14€, yo creo que por 30 céntimos vale
la pena, no?
Ala, a ver si algún (ente) programador de la lista se curra un script
para esto, jeje ;) Yo no sé sí sabría hacerlo (si me pongo, seguramente,
como cualquiera) pero puedo intentar escribirlo en castellano ahora.
Calculemos pues el precio del billete:
Paso 1:
Se recorre la lista_de_pasajeros y si el precio_del_bus dividido por el
número_de_pasajeros es mayor que el maximo€ de algún pasajero, se añade
ese pasajero a la lista X. Entonces se suman los maximo€ de los
pasajeros de la lista X para restarlo del precio_bus. A este resultado
le llamamos nuevo_precio_bus.
El paso 1 debe repetirse (sustituyendo el precio_bus por el
nuevo_precio_bus) hasta que la lista X se complete, es decir, hasta que
el resultado del paso 1 sea siempre el mismo por mucho que se repita.
Paso 2:
Restando el resultado de la suma de los maximo€ de las personas de la
lista X al nuevo_precio_bus, y dividiéndolo entre el número de personas
de la lista Y (el resto de pasajeros) tenemos el precio del billete.
Subiendo al hackbus:
Paga el precio del billete o tu maximo€ si éste es menor, sube al
hackbus y a cantar alguna frikada ;)
Nos vemos en el Goza!Hack.
ps: Eso suponiendo que el bus no va lleno, porque si hubiera más
personas apuntadas que el número de plazas (algo harto improbable),
entonces algunos, irremediablemente (a no ser que se pudiera ir en un
segundo bus) se quedarían fuera, y no necesariamente los de menor maxio€
de la lista X, pues ésta podría estar vacía o que alguien de la lista Y
cediera su plaza a alguien con un maxio€ menor (o eso o por sorteo).
Más información sobre la lista de distribución HackMeeting