[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