Forum » Loža » Prevoz na malico - algoritem
Prevoz na malico - algoritem
Shrike ::
En problem s katerim se srečujemo sodelavci:
Imamo neko množico ljudi - za začetek vzemimo 4 - ki skupaj hodijo na malico, da je cenejši prevoz; torej vsakič naj bi nekdo peljal. Išče se algoritem, ki določa kdo je naslednji na vrsti kot voznik. Pogoji:
-za vsak dan se ve kdo je bil voznik in kdo so bili potniki
-ni nujno da se vsakič vsi peljejo - npr. en dan grejo na malico samo 3 osebe, drug dan 2, potem spet 4, ...
-algoritem mora bit stabilen na dolgi rok - več let - npr, če se uporablja kakšna razmerja in potem primerja decimalna števila, se lahko zgodi da program (npr. kakšen google spreadsheet) ni več zmožen dovolj velike natančnosti za uspešno primerjavo
-algoritem mora biti pošten do vseh - tistih, ki redno hodijo na malico in tistih, ki gredo samo občasno
Nadgraditev:
-osebe se lahko pridružijo ali odidejo iz te množice
-uporabljeno je lahko več vozil hkrati - torej več voznikov naenkrat
Na kašen način bi to rešili vi? Kakšna ideja, link, članek, algoritem, program dobrodošli. Če se da stvar implementirat v kakšen spreadsheet toliko bolje : )
Imamo neko množico ljudi - za začetek vzemimo 4 - ki skupaj hodijo na malico, da je cenejši prevoz; torej vsakič naj bi nekdo peljal. Išče se algoritem, ki določa kdo je naslednji na vrsti kot voznik. Pogoji:
-za vsak dan se ve kdo je bil voznik in kdo so bili potniki
-ni nujno da se vsakič vsi peljejo - npr. en dan grejo na malico samo 3 osebe, drug dan 2, potem spet 4, ...
-algoritem mora bit stabilen na dolgi rok - več let - npr, če se uporablja kakšna razmerja in potem primerja decimalna števila, se lahko zgodi da program (npr. kakšen google spreadsheet) ni več zmožen dovolj velike natančnosti za uspešno primerjavo
-algoritem mora biti pošten do vseh - tistih, ki redno hodijo na malico in tistih, ki gredo samo občasno
Nadgraditev:
-osebe se lahko pridružijo ali odidejo iz te množice
-uporabljeno je lahko več vozil hkrati - torej več voznikov naenkrat
Na kašen način bi to rešili vi? Kakšna ideja, link, članek, algoritem, program dobrodošli. Če se da stvar implementirat v kakšen spreadsheet toliko bolje : )
- premaknil iz Problemi človeštva: Mavrik ()
Smurf ::
Vozi tisti, ki ima v danem trenutku najnizji faktor st_dni_ko_je_vozil/st_dni_ko_ni_vozil.
Koliko pa je to smiselno pa je drugo vprasanje...
Koliko pa je to smiselno pa je drugo vprasanje...
MTB ::
Preštejete kilometre, množite npr. z znižano kilometrino, strošek delite s številom potnikov in vozniku date strošek prevoza.
Ker je namreč razlika v številu voženj, če gre nekdo 3x sam na malico ali pa se enkrat vozijo trije.
To lahko pretvoriš tudi v algoritem in je najbolj pošteno.
Ker je namreč razlika v številu voženj, če gre nekdo 3x sam na malico ali pa se enkrat vozijo trije.
To lahko pretvoriš tudi v algoritem in je najbolj pošteno.
mn ::
Drugače pa za vsakega udeleženca seštejete kolikokrat je vozil, delite s tem kolikokrat je šel na malico in tisti ki ima najnižji faktor pelje naslednji. Število recordov v tabelici je tako enako številu udeležencev v sistemu in ne bo preveč recordov za google spreadsheet.
Matek ::
Preštejete kilometre, množite npr. z znižano kilometrino, strošek delite s številom potnikov in vozniku date strošek prevoza.This.
Ker je namreč razlika v številu voženj, če gre nekdo 3x sam na malico ali pa se enkrat vozijo trije.
To lahko pretvoriš tudi v algoritem in je najbolj pošteno.
Če ne poračunavate z denarjem, lahko še malo poenostavite in uporabite enoto "ena vožnja", ki jo delite s številom potnikov. Potem pa vsakič pelje tisti, ki ima trenutno najnižje skupne stroške.
Bolje ispasti glup nego iz aviona.
Shrike ::
Najenostavnejša rešiotev je, da nehate biti takšni gorenci.
podpis, do solz nasmejal... res ne vidim zapravljanja časa za take stvari... a delaš mrbit v javni upravi? :)
Ne, je kr gospodarstvo, sam premajhno za met lastno menzo. Sprašujem, ker se mi zdi zanimiv problem. Algoritem je popolnoma objektivna zadeva in tako ne pride do nobenih zamer. Če se ljudje odločajo med sabo bo prej ali slej prišlo do problema.
PS: Kadar so v igri razmerja se bo pri večji količini podatkov (več let) stvar začela približevat neki limiti - primerjave le teh pa so lahko nerodne.
PSS: IBM članek http://domino.watson.ibm.com/library/Cy...
Zgodovina sprememb…
- odbrisal: Gandalfar ()
mn ::
PS: Kadar so v igri razmerja se bo pri večji količini podatkov (več let) stvar začela približevat neki limiti - primerjave le teh pa so lahko nerodne.
Zakaj? Saj razumete decimalke ne? Zakaj bi bile nerodne? V 35 letih je manj kot 13000 koledarskih dni tako da ne skrbet da bo razlika šele na kaki 12. decimalki.
AndrejS ::
Obstajata 2 rešitvi:
1. Naročite malico v službo - dostava
2. Na malico greste s taksijem in si razdelite stroške
1. Naročite malico v službo - dostava
2. Na malico greste s taksijem in si razdelite stroške
šernk ::
Ne vem zakaj komplicirat. Sestaviš tedenski vrstni red, če tist ko vozi tist dan manjka pa žrebate
zadeva se mi zdi zastavljena bolj kot kakšna naloga za naše neuporabne faxe kot pa za dejansko kaj uporabnega.
zadeva se mi zdi zastavljena bolj kot kakšna naloga za naše neuporabne faxe kot pa za dejansko kaj uporabnega.
In general, high velocity doesn't produce harmful injuries.
But what is dangerous is the high acceleration
or deceleration given at a certain time interval.
But what is dangerous is the high acceleration
or deceleration given at a certain time interval.
mn ::
2. Na malico greste s taksijem in si razdelite stroške
Samo kaj pa če se stroški ne razdelijo na celo število centov. je nepošteno če kdo plača 0.333333333333333333333333333 centa več kot ostali.
Šimpanz ::
Ni problem algoritem, potem moraš imeti še nekoga ki bo vpisoval kdo je vozil, kdo je odsoten, kdo se je peljal v prvem, kdo v drugem in kdo se je peljal sam v svojem avtu. In to vsak dan.
Jaz raje vozim vsak dan, kot pa da tole izpolnjujem.
Še najbolj se mi dopade tale predlog:
šernk :: danes, 14:38:11
Ne vem zakaj komplicirat. Sestaviš tedenski vrstni red, če tist ko vozi tist dan manjka pa žrebate
Jaz raje vozim vsak dan, kot pa da tole izpolnjujem.
Še najbolj se mi dopade tale predlog:
šernk :: danes, 14:38:11
Ne vem zakaj komplicirat. Sestaviš tedenski vrstni red, če tist ko vozi tist dan manjka pa žrebate
Matevz96 ::
Men se najbolj dopade tale predlog:
Najlažja rešitev, je ta, da tistemu, ki vozi ostali gorenjci plačate ga častite malico in je to to....
čuhalev ::
black ice ::
Najprej sem mislil, da je spet kakšna troll tema. Po nekaj postih je očitno da OP resno misli.
Sendvič s sabo pa gasa, s tem poskrbiš tudi za optimizacijo delovnega časa. 10 minut malice, preostali višek časa nazaj na delovno mesto.
Sendvič s sabo pa gasa, s tem poskrbiš tudi za optimizacijo delovnega časa. 10 minut malice, preostali višek časa nazaj na delovno mesto.
m0LN4r ::
Najenostavnejša rešiotev je, da nehate biti takšni gorenci.
Haha, ja.
Kam pa hodijo na malico, da je treba z avtom in predstavlja tko hud strošek, da ga nemoreš pokrit z enim čajem.
Osebno bi nonstop vozil tisti, ki ima nekako najbolj udoben avto in muzko ali največ izkušenj z vožnjo.
Algoritem je popolnoma objektivna zadeva in tako ne pride do nobenih zamer.
Seveda pride. Imaš nekoga, ki ni gorenjc in rad vozi. Imaš gorenjce katerim je škoda svojega avta, neglede na algoritem.
Jaz si sebe ne predtavljam v avtu z nekom, ki vozi po nekaj letih še vedno po prešvinglanem cpp in brez občutka za vozilo.
Tako bi se prostovoljno javil, da bi nonstop vozil jaz.
V zameno, da bi vozil nonstop jaz nebi zahteval plačila, ker je hkrati privilegij. Torej eno z drugim mi paše.
Problem je, ko mene ni. Takrat pa naj pelje 2. najboljši voznik.
Kakorkoli. Iz algoritma vzameš razno škrtarjenje in ga zamenjaš z prostovoljstvom pa je problem načeloma rešen.
Razen, če imamo tu opravka z 4mi gorenjci, kjer noben neče vozit in neče plačat.
https://ref.trade.re/38mvdvxm
Trade Republic 38MVDVXM
Trade Republic 38MVDVXM
Zgodovina sprememb…
- odbrisal: Gandalfar ()
Bellzmet ::
Drugače pa vozi tisti, ki ima najmanjše razmerje:
voznik=kolikokrat je vozil/kolikokrat je šel na malico
Excel tabela, formule in vsak dan vpišeš kdo je šel na malico in kdo je vozil.
voznik=kolikokrat je vozil/kolikokrat je šel na malico
Excel tabela, formule in vsak dan vpišeš kdo je šel na malico in kdo je vozil.
urosz ::
vbistvu ni na vrsti tisti, ki ima najmanjše razmerje:
voznik=kolikokrat je vozil/kolikokrat je šel na malico
ampak
voznik=kolikokrat km je vozil/kolikokrat je šel na malico
voznik=kolikokrat je vozil/kolikokrat je šel na malico
ampak
voznik=kolikokrat km je vozil/kolikokrat je šel na malico
m0LN4r ::
Ja in en gorenc ma 5L drug pa 12L avto :)
https://ref.trade.re/38mvdvxm
Trade Republic 38MVDVXM
Trade Republic 38MVDVXM
urosz ::
To pa nima veze. Tisti ki ima "12L avto", je prišparal spet ko je kupoval avto, ker je najbrž kupil cenejšega.
Bodo kar km vredu.
Bodo kar km vredu.
Vesoljc ::
neki tacga mogoce?
disclaimer: not really tested code ;)
v zgornji logiki je merilo kolikokrat je nekdo vozil nekoga. se pa da ta "int" zamenjati za nek drug weight, ki se recimo lahko zracuna iz drugih vrednosti (poraba, etc...).
disclaimer: not really tested code ;)
public class SuperLogic { public Dictionary<string, Dictionary<string, int>> m_PersonRefCount = new Dictionary<string, Dictionary<string, int>>(); private void AddRide(string driver, params string[] passengers) { Dictionary<string, int> perPersonCount = null; if (m_PersonRefCount.TryGetValue(driver, out perPersonCount) == false) { perPersonCount = new Dictionary<string, int>(); m_PersonRefCount.Add(driver, perPersonCount); } // foreach (string p in passengers) { if (driver == p) continue; // if (perPersonCount.ContainsKey(p) == false) { perPersonCount[p] = 1; } else { perPersonCount[p]++; } } } private int GetDriverScoreForGroup(string driver, params string[] passengers) { int score = 0; Dictionary<string, int> perPersonCount = null; if (m_PersonRefCount.TryGetValue(driver, out perPersonCount) == true) { foreach (string p in passengers) { if (driver == p) continue; // int ps = 0; if (perPersonCount.TryGetValue(p, out ps) == true) { score += ps; } } } return score; } public string WhoIsDriving(params string[] passengers) { if (passengers.Length == 0) return null; // string bestDriver = null; int bestDriverValue = int.MaxValue; // foreach (string p in passengers) { string currentDriver = p; int currentDriverValue = GetDriverScoreForGroup(currentDriver, passengers); if (currentDriverValue < bestDriverValue) { bestDriverValue = currentDriverValue; bestDriver = currentDriver; } } // AddRide(bestDriver, passengers); // return bestDriver; } }
v zgornji logiki je merilo kolikokrat je nekdo vozil nekoga. se pa da ta "int" zamenjati za nek drug weight, ki se recimo lahko zracuna iz drugih vrednosti (poraba, etc...).
Abnormal behavior of abnormal brain makes me normal...
m0LN4r ::
Kaj pa če je 12L zato ker je Porsche ali kaj podobnega.
Sej lih to, če ma en poršeja bi se rajši znjim pelal :)
Če se gre za tipa ljudi, ki si zamerijo stvari, kot so strošek prevoza za malco jih bo objektiven algoritem še bolj skregal med sabo :)
https://ref.trade.re/38mvdvxm
Trade Republic 38MVDVXM
Trade Republic 38MVDVXM
fosil ::
Točkovanje.
Za vsako osebo, ki jo pelješ, dobiš eno točko.
Vsakič ko se pelješ, zgubiš eno točko.
Vsota vseh točk je vedno 0.
Zato je sistem stabilen tudi na dolgi rok in to ne glede na število oseb.
Pogoj je edino to, da oseba preden odide, mora imeti stanje 0.
Za vsako osebo, ki jo pelješ, dobiš eno točko.
Vsakič ko se pelješ, zgubiš eno točko.
Vsota vseh točk je vedno 0.
Zato je sistem stabilen tudi na dolgi rok in to ne glede na število oseb.
Pogoj je edino to, da oseba preden odide, mora imeti stanje 0.
Tako je!
fosil ::
Oziroma če malce popravim bi bilo takole.
Vsota točk vsake vožnje mora biti nič.
Recimo da voznik za vsako vožnjo dobi dvanajst točk.
To pomeni da morajo za vsako vožnjo vsi potniki skupaj (tudi voznik) plačati dvanajst točk.
Če so v avtu štirje vsak plača tri točke, tudi voznik. Voznik torej dobi 12-3=9, ostali trije pa vsi zgubijo po tri, torej skupaj -9.
Če sta dva, vsak plača šest točk, tudi voznik. Voznik torej dobi 6 točk, potnik jih zgubi 6.
Če so trije, zračunaj sam ;)
Vsota točk vsake vožnje mora biti nič.
Recimo da voznik za vsako vožnjo dobi dvanajst točk.
To pomeni da morajo za vsako vožnjo vsi potniki skupaj (tudi voznik) plačati dvanajst točk.
Če so v avtu štirje vsak plača tri točke, tudi voznik. Voznik torej dobi 12-3=9, ostali trije pa vsi zgubijo po tri, torej skupaj -9.
Če sta dva, vsak plača šest točk, tudi voznik. Voznik torej dobi 6 točk, potnik jih zgubi 6.
Če so trije, zračunaj sam ;)
Tako je!
stb ::
Oziroma če malce popravim bi bilo takole.
Vsota točk vsake vožnje mora biti nič.
Recimo da voznik za vsako vožnjo dobi dvanajst točk.
To pomeni da morajo za vsako vožnjo vsi potniki skupaj (tudi voznik) plačati dvanajst točk.
Če so v avtu štirje vsak plača tri točke, tudi voznik. Voznik torej dobi 12-3=9, ostali trije pa vsi zgubijo po tri, torej skupaj -9.
Če sta dva, vsak plača šest točk, tudi voznik. Voznik torej dobi 6 točk, potnik jih zgubi 6.
Če so trije, zračunaj sam ;)
V taxi lingu bi operirali samo s štartninami?
In višjo porabo zaradi dodatne teže pa kar zanemarjate?
Vožnja lahko stane npr 12 točk za 4 osebe, ampak če sta pa samo dva bi to moralo biti nekoliko ceneje, npr 11 točk. Če jih je 5 pade ugodje (in cena na osebo), ampak poraba je pa vseeno višja, zato bi skupna cena morala biti npr 12,5 točke (cenik je torej 10 točk "štartnine" + 0,5 točke na osebo)
Pa pozabljate na skalabilnost (glede dodatnih avtomobilov in kilometrov) in druge robne primere...
Če jih gre na malico 6 se jih bo 5 stiskalo v en avto (ker je to za njih ceneje), v drugem avtu bo pa en sam (drago plačal lastno vožnjo)?
Če se gre en dan do 500 m oddaljenega lokala, drug dan pa na 10 km izlet... v klanec po makadamu
Pa vožnja po snegu je dražja (v mrzlem vremenu se porabi več goriva, večji rizik nesreče), ob dežju obraba brisalcev...
Če že komplicirate ne biti tako površni pri tem, no!
Zgodovina sprememb…
- spremenil: stb ()
oracle ::
Številne naštete rešitve so mi všeč, ampak če hočemo bit realni, je skoraj najpomembnejši faktor "ease of use".
Zato predlagam naslednje: Najprej se javijo tisti, ki so pripravljeni voziti. Če se noben ne javi, se enega izžreba (za obdobje enega meseca). Izračuna se pavšalni strošek osebe, ki bi cel mesec vozila (pavšal 20 dni), recimo 50 EUR. Za ta mesec vsi razen voznika plačajo enakovreden prispevek od teh 50 EUR. Odsotnosti potnikov se zanemarijo, saj na dolgi rok nimajo vpliva. Odsotnost voznika se reši z žrebom, zopet na dolgi rok to nima vpliva.
Meni se zdi to najboljši kompromis med vloženim trudom in rezultatom.
Kdor ima slučajno višjo porabo, ga očitno tudi v vsakdanjem življenju to ne moti in bo pač moral požreti. Ne gre se za to, da morajo biti vsi do centa enako v strošku (to so sposobni samo gestapo gorenci), pač pa da maš nek objektiven in relativno pravičen sistem.
Zato predlagam naslednje: Najprej se javijo tisti, ki so pripravljeni voziti. Če se noben ne javi, se enega izžreba (za obdobje enega meseca). Izračuna se pavšalni strošek osebe, ki bi cel mesec vozila (pavšal 20 dni), recimo 50 EUR. Za ta mesec vsi razen voznika plačajo enakovreden prispevek od teh 50 EUR. Odsotnosti potnikov se zanemarijo, saj na dolgi rok nimajo vpliva. Odsotnost voznika se reši z žrebom, zopet na dolgi rok to nima vpliva.
Meni se zdi to najboljši kompromis med vloženim trudom in rezultatom.
Kdor ima slučajno višjo porabo, ga očitno tudi v vsakdanjem življenju to ne moti in bo pač moral požreti. Ne gre se za to, da morajo biti vsi do centa enako v strošku (to so sposobni samo gestapo gorenci), pač pa da maš nek objektiven in relativno pravičen sistem.
Zgodovina sprememb…
- spremenilo: oracle ()
Unknown_001 ::
Moj predlog. Doma si pripravite malico, pa jo sabo v službo prinesite in jo lahk v avtu pustite v primeru, da nimate kam pospravit.
Prednosti:
+Veš kaj je v malici
+Malico si sestaviš sam z vsemimi specialnimi dodatki ki jih imaš rad zraven
+Dostopna takoj
+Ni dileme kam it jest
-> +Ni dileme kaj bi šel jest
+Ni zgornjega problema
Slabosti:
-če nimaš domišljije si obsojen na sendviče
-ni možnosti tople malice (Če bi rad hrano pustil toplo v termo torbi tvegaš zastrupitev-bakterije se hitro množijo ob taki temperaturi)
-porabiš nekaj svojega časa doma, da si to pripraviš...
Samo moje mnenje, če vam ni všeč ga lahko mirno prezrete, ampak zakaj bi odpravljal posledice, če pa lahko izkoreniniš problem.
Prednosti:
+Veš kaj je v malici
+Malico si sestaviš sam z vsemimi specialnimi dodatki ki jih imaš rad zraven
+Dostopna takoj
+Ni dileme kam it jest
-> +Ni dileme kaj bi šel jest
+Ni zgornjega problema
Slabosti:
-če nimaš domišljije si obsojen na sendviče
-ni možnosti tople malice (Če bi rad hrano pustil toplo v termo torbi tvegaš zastrupitev-bakterije se hitro množijo ob taki temperaturi)
-porabiš nekaj svojega časa doma, da si to pripraviš...
Samo moje mnenje, če vam ni všeč ga lahko mirno prezrete, ampak zakaj bi odpravljal posledice, če pa lahko izkoreniniš problem.
Wie nennt man einen Moderator mit der Hälfte des Gehirnis ?
Begabt
Begabt
Unknown_001 ::
Pa vožnja po snegu je dražja (v mrzlem vremenu se porabi več goriva, večji rizik nesreče), ob dežju obraba brisalcev...
Če že komplicirate ne biti tako površni pri tem, no!
Sicer offtopic, ampak sledeči stvari sta še najmanjši problem.
Več porabljenega goriva? Po neki logiki rahlo skergano z logiko, sploh če gre za atmosferski motor. Mogoče, če radi ogrevanje na polno šibate pa v nižji prestavi brodite skozi plundro...
Obraba brisalcev... pa kaj ti brisalce prižigaš že ko imaš 5 kapljic na šipi, kljub temu da je tudi nekaj prahu gor? Pa madona, če malo vitreksa špricneš po steklu tud ne boš bankrotiral, ker na suho z res ni najbolj zdravo brisalcev prižigat.
Pardon ampak me je pač zmotilo, to napihovanje povsem zanemarljivih podatkov da ne bi bil izračun "površen". Pol najbolj da kar od povprečja letnih stroškov vzdrževanja se določen procent upošteva za plačilo pa je mir.
Wie nennt man einen Moderator mit der Hälfte des Gehirnis ?
Begabt
Begabt
Zgodovina sprememb…
- spremenilo: Unknown_001 ()
trenerkar ::
Najboljša rešitev je žrebanje šoferja za vsak prevoz. Dolgoročno bi moralo biti fer.
Se pa strinjam s tistim o gorencih.
Se pa strinjam s tistim o gorencih.
stb ::
Unknown_001 je izjavil:
Če že komplicirate ne biti tako površni pri tem, no!
Pardon ampak me je pač zmotilo, to napihovanje povsem zanemarljivih podatkov da ne bi bil izračun "površen". Pol najbolj da kar od povprečja letnih stroškov vzdrževanja se določen procent upošteva za plačilo pa je mir.
Se opravičujem, mi je na koncu zmanjkal en smeško, da bi ti sprožil sarkazem detektor.
Unknown_001 ::
Unknown_001 je izjavil:
Če že komplicirate ne biti tako površni pri tem, no!
Pardon ampak me je pač zmotilo, to napihovanje povsem zanemarljivih podatkov da ne bi bil izračun "površen". Pol najbolj da kar od povprečja letnih stroškov vzdrževanja se določen procent upošteva za plačilo pa je mir.
Se opravičujem, mi je na koncu zmanjkal en smeško, da bi ti sprožil sarkazem detektor.
Potemtakem se opravičujem nazaj. Sem seveda pomislil na možnost sarkazma, a sem napisano očitno razumel preveč dobesedno.
Wie nennt man einen Moderator mit der Hälfte des Gehirnis ?
Begabt
Begabt
Shrike ::
Točkovanje.
Za vsako osebo, ki jo pelješ, dobiš eno točko.
Vsakič ko se pelješ, zgubiš eno točko.
Vsota vseh točk je vedno 0.
Zato je sistem stabilen tudi na dolgi rok in to ne glede na število oseb.
Pogoj je edino to, da oseba preden odide, mora imeti stanje 0.
Tale se mi zdi še najbol kul, upošteva tudi vse pogoje. Trenutno delamo preko razmerij ampak je tole bolj elegantno.
Sej drugače se ne gre za stroške prevoza, ampak, da ni treba razmišljat, kdo bi naslednji vozil.
Pa kaj so vam gorenci nardil, da ste tolk nastrojeni prot njim, ha ha
nekikr ::
Sej drugače se ne gre za stroške prevoza, ampak, da ni treba razmišljat, kdo bi naslednji vozil.
Zakaj moraš pa o tem razmišljati, če se ne gre za stroške?
fosil ::
Točkovanje.
Za vsako osebo, ki jo pelješ, dobiš eno točko.
Vsakič ko se pelješ, zgubiš eno točko.
Vsota vseh točk je vedno 0.
Zato je sistem stabilen tudi na dolgi rok in to ne glede na število oseb.
Pogoj je edino to, da oseba preden odide, mora imeti stanje 0.
Tale se mi zdi še najbol kul, upošteva tudi vse pogoje. Trenutno delamo preko razmerij ampak je tole bolj elegantno.
Sej drugače se ne gre za stroške prevoza, ampak, da ni treba razmišljat, kdo bi naslednji vozil.
Pa kaj so vam gorenci nardil, da ste tolk nastrojeni prot njim, ha ha
Uporabi raje popravljen sistem, je bolj pravičen, če se spreminja število potnikov.
Torej takole.
Vsota točk vsake vožnje mora biti nič.
Recimo da voznik za vsako vožnjo dobi dvanajst točk.
To pomeni da morajo za vsako vožnjo vsi potniki skupaj (tudi voznik) plačati dvanajst točk.
Če so v avtu štirje vsak plača tri točke, tudi voznik. Voznik torej dobi 12-3=9, ostali trije pa vsi zgubijo po tri, torej skupaj -9.
Če sta dva, vsak plača šest točk, tudi voznik. Voznik torej dobi 6 točk, potnik jih zgubi 6.
Če so trije, zračunaj sam ;)
Tako je!
taz ::
Dejte upoštevat še težo potnika, ker lahko se kdaj nekdo ne pelje, pa tisti ko vozi tako prišpara na gorivu
garamond ::
Predlagam, da se namesto teže potnika upošteva njegova masa. Tako naredimo algoritem bolj prenosljiv na nezemeljske sisteme in boljši na dolgi rok (recimo, algoritem bi veljal za na mars).
Nadalje se razdela masa potnika pred in po malici -- maksimalno pravičen algoritem torej upošteva tudi to, koliko je nekdo pojedel -- za koliko se poveča poraba goriva zaradi nažiranja med malico.
Najbolj pravični algoritmi imajo na tisoče spremenljivk in mogoče bom kakšno pozneje napisal.
Nadalje se razdela masa potnika pred in po malici -- maksimalno pravičen algoritem torej upošteva tudi to, koliko je nekdo pojedel -- za koliko se poveča poraba goriva zaradi nažiranja med malico.
Najbolj pravični algoritmi imajo na tisoče spremenljivk in mogoče bom kakšno pozneje napisal.
Gandalfar ::
Dajte ne bit zateženi. Vprašanje je dokaj pogosta uganka, ki si jo marsikateri srednje velik team postavi tekom svojih popotovanj na kosilo.
mojca ::
Manjka podatek oz. preferenca za to, kaj ti razumeš pod "pravično".
Recimo, da se A na malico pelje v ponedeljek sam, preostale štiri dni pa se B, C, D in E peljejo na malico skupaj, pri čemer vsak dan vozi drugi. Vsi porabijo enako goriva, toda oseba A za porabljeno gorivo dobi le eno malico, ostali pa vsak po štiri. Si je vseh pet enakih ali A-ju pripada nekaj voženj, ker je "na slabšem"?
Drugi scenarij. V ponedeljek se A, B in C peljejo v prvem avtomobilu (vozi A), D in E pa v drugem (vozi E). V torek je enaka sestava po avtomobilih, le da vozita B in D. Sta si B in D enaka ali je B na boljšem, ker mu pripada še ena vožnja v troje? Bi se "dolgovi" oz. razmerja spremenila, če bi C sedel v drugem avtomobilu oz. ali je res pomembno, v katerem avtomobilu je sedel C?
Če želiš algoritem, moraš povedati, kaj *točno* želiš optimizirati oz. kaj na gornjih dveh primerih dojemaš kot bolj pošteno.
Recimo, da se A na malico pelje v ponedeljek sam, preostale štiri dni pa se B, C, D in E peljejo na malico skupaj, pri čemer vsak dan vozi drugi. Vsi porabijo enako goriva, toda oseba A za porabljeno gorivo dobi le eno malico, ostali pa vsak po štiri. Si je vseh pet enakih ali A-ju pripada nekaj voženj, ker je "na slabšem"?
Drugi scenarij. V ponedeljek se A, B in C peljejo v prvem avtomobilu (vozi A), D in E pa v drugem (vozi E). V torek je enaka sestava po avtomobilih, le da vozita B in D. Sta si B in D enaka ali je B na boljšem, ker mu pripada še ena vožnja v troje? Bi se "dolgovi" oz. razmerja spremenila, če bi C sedel v drugem avtomobilu oz. ali je res pomembno, v katerem avtomobilu je sedel C?
Če želiš algoritem, moraš povedati, kaj *točno* želiš optimizirati oz. kaj na gornjih dveh primerih dojemaš kot bolj pošteno.
Polarni_Medo ::
Recimo da se vozi na malico 4 ljudi! Ustvariš vse možne kombinacije in vsak dan napišeš kdo je peljal v kombinaciji, ki je šla na malico, tako takoj vidiš kdo je na vrsti za dano kombinacijo in to je najbolj pošteno. Predlagam, da si ustvarite skupno podatkovno bazo in vsak dan vnesete podatke sproti. Lahko si še ustvarite mobilno aplikacijo, ki bo kot vhodni parameter vzela kdo gre na dani dan na malico in bo posredovala ime.
BigWhale ::
Na dolgi rok, bo najbolj pravicen najbolj random algoritem. Vsakic, ko se pelje, se zreba. Vseeno koliko ljudi se pelje in vseeno koliko avtov gre. Zmeraj se zreba tolikokrat, kolikor je soferjev.
blink ::
En problem s katerim se srečujemo sodelavci:
Imamo neko množico ljudi - za začetek vzemimo 4 - ki skupaj hodijo na malico, da je cenejši prevoz; torej vsakič naj bi nekdo peljal. Išče se algoritem, ki določa kdo je naslednji na vrsti kot voznik. Pogoji:
-za vsak dan se ve kdo je bil voznik in kdo so bili potniki
-ni nujno da se vsakič vsi peljejo - npr. en dan grejo na malico samo 3 osebe, drug dan 2, potem spet 4, ...
-algoritem mora bit stabilen na dolgi rok - več let - npr, če se uporablja kakšna razmerja in potem primerja decimalna števila, se lahko zgodi da program (npr. kakšen google spreadsheet) ni več zmožen dovolj velike natančnosti za uspešno primerjavo
-algoritem mora biti pošten do vseh - tistih, ki redno hodijo na malico in tistih, ki gredo samo občasno
Nadgraditev:
-osebe se lahko pridružijo ali odidejo iz te množice
-uporabljeno je lahko več vozil hkrati - torej več voznikov naenkrat
Na kašen način bi to rešili vi? Kakšna ideja, link, članek, algoritem, program dobrodošli. Če se da stvar implementirat v kakšen spreadsheet toliko bolje : )
Ne komplicirat. Zmenite se tako, da kdor pelje dobi X eur. Če je preveč šoferjev, pelje tisti ki zapelje za manj denarja.
Looooooka ::
Jezus. Pelje tisti, ki se mu da pelat.
Šteje se kilometre, ki ste jih prevozili tisti mesec in povprečna poraba vašega avtomobila(če ne ste itak pizde).
Na koncu meseca se zračuna, kdo je mel kok prevoženih kilometrov(ni važno al kot voznik al kot potnik, ker sklepam, da bi se na malico v vsakem primeru moral pripeljat) kok vas je koštalo gorivo in se pač razdeli stroške.
Plačo mate verjetno tud 1x na mesec, tko, da se to pač naredi na tisti dan.
Kot da se da vsakemu človeku vsak dan bit voznik...bo pršu zmozgan v firmo pa boste v reki končal.
Šteje se kilometre, ki ste jih prevozili tisti mesec in povprečna poraba vašega avtomobila(če ne ste itak pizde).
Na koncu meseca se zračuna, kdo je mel kok prevoženih kilometrov(ni važno al kot voznik al kot potnik, ker sklepam, da bi se na malico v vsakem primeru moral pripeljat) kok vas je koštalo gorivo in se pač razdeli stroške.
Plačo mate verjetno tud 1x na mesec, tko, da se to pač naredi na tisti dan.
Kot da se da vsakemu človeku vsak dan bit voznik...bo pršu zmozgan v firmo pa boste v reki končal.
Zgodovina sprememb…
- spremenilo: Looooooka ()
urosh ::
to: fosil :: 11. dec 2014, 17:37:26
Na podoben način smo meli tudi mi eno excel tabelo. Za dva avta. Tisti ki vozi je 11, ki se pelje je 12. Avto 2: 21 in 22
tako se je lahko en peljal tudi v avtu 1, pa je bil "original" iz avta 2. Smo meli za vožnjo v službo.
Z eno razliko - mi nismo imeli 12 točk, ampak 1. tisti, ki je vozil, je pač dobil 0,34 točke, namesto 0,33. Naj je bilo dovolj natančno :)
Na podoben način smo meli tudi mi eno excel tabelo. Za dva avta. Tisti ki vozi je 11, ki se pelje je 12. Avto 2: 21 in 22
tako se je lahko en peljal tudi v avtu 1, pa je bil "original" iz avta 2. Smo meli za vožnjo v službo.
Z eno razliko - mi nismo imeli 12 točk, ampak 1. tisti, ki je vozil, je pač dobil 0,34 točke, namesto 0,33. Naj je bilo dovolj natančno :)
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Stran Prevoz.org (strani: 1 2 3 4 5 6 7 8 9 )Oddelek: Loža | 111096 (12607) | recmajkemi |
» | Prehitevanje kolone (strani: 1 2 3 4 )Oddelek: Na cesti | 24089 (20479) | facepalm |
» | Zastonj javni prevoz (strani: 1 2 )Oddelek: Problemi človeštva | 12289 (10886) | noraguta |
» | Uber v Nemčiji prepovedan (strani: 1 2 3 4 5 )Oddelek: Novice / Ostale najave | 73087 (61272) | hotwheels |
» | Excel in distribucija časaOddelek: Pomoč in nasveti | 1705 (1644) | nurmaln |