K1d0r3L Posted November 18, 2015 Report Share Posted November 18, 2015 Salut ,Sunt curios daca stie cineva raspunsul la urmatoarea intrebare :Sunt 25 de innotatori si 5 piste de inot cum determini care sunt primii 3 inotatori cei mai rapizi?Nu exista cronometru !!!!Eu personal nu stiu raspunsul si nici tovarasu' care a dat testul.Aveti vreo idee? Quote Link to comment Share on other sites More sharing options...
urs Posted November 18, 2015 Report Share Posted November 18, 2015 ii pui sa inoate cate 5 pe cele 5 piste de inot, ii iei pe cei 5 invingatori (5 inotatori pe cursa, 25 de inotatori, deci 5 curse) si ii pui sa inoate pe cele 5 piste si te alegi cu top 3 cei mai rapizi.zic, nu stiu - pista ma'sii... Quote Link to comment Share on other sites More sharing options...
Byte-ul Posted November 18, 2015 Report Share Posted November 18, 2015 E aici explicat:25 horses 5 tracks 3 fastest puzzle Quote Link to comment Share on other sites More sharing options...
Ganav Posted November 18, 2015 Report Share Posted November 18, 2015 Salut ,Sunt curios daca stie cineva raspunsul la urmatoarea intrebare :Sunt 25 de innotatori si 5 piste de inot cum determini care sunt primii 3 inotatori cei mai rapizi?Nu exista cronometru !!!!Eu personal nu stiu raspunsul si nici tovarasu' care a dat testul.Aveti vreo idee?Este o problema similara cu determinarea maximului unui numar, in acest caz a trei. Impart inotatorii in 5 multimi de cate cinici, determini pe cel mai rapid din fiecare submultime. Vei obtine 5 inotatori (cate un castigator pe submultime) dupa care determini maximul pentru submultimea formata din cei 5. Se presupune ca fiecare inoata o singura data si fiecare are aceiasi capacitate (adica inoata la fel de repede oricand). Ai nevoie in total de 25 / 5 + 1 = 6 curse. Quote Link to comment Share on other sites More sharing options...
tjt Posted November 18, 2015 Report Share Posted November 18, 2015 @Ganav nu e adevarat. 5 dintr-o serie pot fi mai rapizi decat cel mai rapid din alta serie. Trebuie generate toate submultimele de 5 astfel incat fiecare inotator sa se raporteze la toti ceilalti inotatori. Dupa sortezi avand ca reper toate submultimile. Sunt pe tel si e destul de aiurea cu butoanele astea mici. Quote Link to comment Share on other sites More sharing options...
gigiRoman Posted November 19, 2015 Report Share Posted November 19, 2015 Dupa cum suna intrebarea ar trebui sa zici care sunt cei mai rapizi din prima. Nu sa ii pui sa reia cursa. Ca poate a doua oara nu mai alearga atat de bine. Quote Link to comment Share on other sites More sharing options...
tjt Posted November 19, 2015 Report Share Posted November 19, 2015 (edited) Cum as fi rezolvat eu problema :1. Generam toate submultimele de 5 inotatori din cei 25. (Backtracking )2. Avem un vector de frecventa inotatori[25] = {0,0, ... , 0} , unde indicii vectorului reprezinta fiecare inotator.3. Pentru fiecare submultime adun pozitia pe care a terminat in vectorul de frecventa si o sa avem astfel:Cel care va fi primul, inseamna ca va castiga toate cursele din toate submultimele si o sa aiba cel mai mic numar in vectorul de frecventa (Se aduna 1 de fiecare data cand castiga).Cel care va fi al doilea, inseamna ca va castiga toate cursele din toate submultimele cu exceptia curselor in care va fi alaturi de cel de pe primul loc (Se aduna 1 de fiecare data cand castiga, 2 se aduna atunci cand va iesi pe locul 2)Cel care va fi al treilea, inseamna ca va castiga toate cursele din toate submultimele cu exceptia cursei in care va fi alaturi de cel de pe primul loc, cel de pe al doilea loc, si ambii. (Se aduna 1 de fiecare data cand castiga, 2 se aduna de doua ori, atunci cand va fi in cursa cu primul si atunci cand va fi in cursa cu al doilea, iar 3 se aduna o singura data atunci cand 1 si 2 sunt in aceeasi cursa cu el).Dupa ne uitam in vectorul de frecventa si luam indicele pentru minim (1 loc) si tot asa pana obtinem toate locurile. Edited November 19, 2015 by tjt Quote Link to comment Share on other sites More sharing options...
Ganav Posted November 19, 2015 Report Share Posted November 19, 2015 Cum as fi rezolvat eu problema :1. Generam toate submultimele de 5 inotatori din cei 25. (Backtracking )2. Avem un vector de frecventa inotatori[25] = {0,0, ... , 0} , unde indicii vectorului reprezinta fiecare inotator.3. Pentru fiecare submultime adun pozitia pe care a terminat in vectorul de frecventa si o sa avem astfel:Cel care va fi primul, inseamna ca va castiga toate cursele din toate submultimele si o sa aiba cel mai mic numar in vectorul de frecventa (Se aduna 1 de fiecare data cand castiga).Cel care va fi al doilea, inseamna ca va castiga toate cursele din toate submultimele cu exceptia curselor in care va fi alaturi de cel de pe primul loc (Se aduna 1 de fiecare data cand castiga, 2 se aduna atunci cand va iesi pe locul 2)Cel care va fi al treilea, inseamna ca va castiga toate cursele din toate submultimele cu exceptia cursei in care va fi alaturi de cel de pe primul loc, cel de pe al doilea loc, si ambii. (Se aduna 1 de fiecare data cand castiga, 2 se aduna de doua ori, atunci cand va fi in cursa cu primul si atunci cand va fi in cursa cu al doilea, iar 3 se aduna o singura data atunci cand 1 si 2 sunt in aceeasi cursa cu el).Dupa ne uitam in vectorul de frecventa si luam indicele pentru minim (1 loc) si tot asa pana obtinem toate locurile.Nu ai nevoie de toate combinatiile deoarece esti interesat de un maxim. Practic, problema poate fi asociata cu sortarea unei multimi de numere folosind metoda divide et impera. Fiecare inotator are aceiasi viteza maxima cu inoata de fiecare data, indiferent din ce multime face parte (cu cine concureaza). Quote Link to comment Share on other sites More sharing options...
tjt Posted November 19, 2015 Report Share Posted November 19, 2015 (edited) Nu ai nevoie de toate combinatiile deoarece esti interesat de un maxim. Practic, problema poate fi asociata cu sortarea unei multimi de numere folosind metoda divide et impera. Fiecare inotator are aceiasi viteza maxima cu inoata de fiecare data, indiferent din ce multime face parte (cu cine concureaza).Dar nu ai cum sa afl viteza lui maxima, daca stiai asta problema era foarte simpla.Edit: Da, ai dreptate. Se reduce tot la aflarea unui maxim.Pui 5 sa inoate simultan. Cel de pe locul 1 ramane in bazin. ( 25 - 5 = 20 persoane ramase)Mai adaugi 4 persoane. Cel de pe locul 1 ramane in bazin. (20 - 4 = 16 persoane ramase)Mai adaugi 4 persoane. Cel de pe locul 1 ramane in bazin. (16 - 4 = 12 persoane ramase)Mai adaugi 4 persoane. Cel de pe locul 1 ramane in bazin. (12 - 4 = 8 persoane ramase)Mai adaugi 4 persoane. Cel de pe locul 1 ramane in bazin. (8 - 4 = 4 persoane ramase)Mai adaugi 4 persoane. Cel de pe locul 1 ramane in bazin. (4 - 4 = 0 persoane ramase(Am aflat locul 1 si il eliminam din cele 25 de persoane. Raman 24 de persoane si repetam procedura.E nevoie de 18 tururi in total pentru a afla primii 3 Edited November 19, 2015 by tjt Quote Link to comment Share on other sites More sharing options...
gigiRoman Posted November 19, 2015 Report Share Posted November 19, 2015 Sunt 25 de femei si 5 paturi. Cum determini care sunt cele mai bune 3? Nu exista viagra !!!! Quote Link to comment Share on other sites More sharing options...
yoyois Posted November 19, 2015 Report Share Posted November 19, 2015 Parerea mea:Pui 5 inotatori.Din cei 5 ii pastrezi doar pe primii 3 (ultimii 2 ii elimini si ii inlocuiesti cu alti 2).Repeti chestia asta cu toti inotatorii.(ai 11 curse) (25-5 = 20 de inotatori ramasi luati cate 2 => 10 curse + 1 initiala)La final raman doar top 3 (selectie naturala). Quote Link to comment Share on other sites More sharing options...
sulea Posted November 19, 2015 Report Share Posted November 19, 2015 parerea mea:problema are rezolvare doar in cazul in care inotatorii isi pastreaza viteza de inot in toate cursele (viteza constanta), caz in care byte-ul a aratat rezolvareainsa lucrul asta nu este omenesc (sau calaresc, apropos de varianta cu cai), deci in practica problema nu are rezolvare, deoarece intrecerea se transforma in campionat. iar intr-un campionat locul 1 nu este mai rapid ca locul 15, ci doar a acumulat mai multe puncte per ansamblu Quote Link to comment Share on other sites More sharing options...
Ganav Posted November 20, 2015 Report Share Posted November 20, 2015 Salut ,Sunt curios daca stie cineva raspunsul la urmatoarea intrebare :Sunt 25 de innotatori si 5 piste de inot cum determini care sunt primii 3 inotatori cei mai rapizi?Nu exista cronometru !!!!Eu personal nu stiu raspunsul si nici tovarasu' care a dat testul.Aveti vreo idee?Scuze, solutia de mai devreme nu este valida deoarece nu trateaza cazul in care intr-un grup de inotatori se gasesc inotatori mai inceti ca si cel mai rapid din grup, dar care este si cel mai rapid dintre toti din toate grupele. Ceilalti inotatori mai lenti pot fi totusi mai rapizi ca si cei mai rapizi din celelalte. Prin grup ma refer la un grup de cinci inotatori care concureaza simultan. O metoda simpla ar fi selectarea primilor trei din fiecare grupa si compararea acestora. Selectarea doar a unui singur nu este suficienta din cauza problemei de mai sus. Quote Link to comment Share on other sites More sharing options...