Witam. Myślę od kilku dni nad pewnym zadaniem, niestety mój mózg jest na to zbyt mały. Chodzi o pewne zadanie, które polega na podaniu najmniejszej liczby kroków (x) które trzeba zrobić, aby znaleźć fałszywkę wśród n monet. Wejście:n, wyjście: x. Dalej nie wiem co mnie w tym przerasta. A jednakmój program działa tylko w połowie przypadków. Po prostu nie mogę znaleźć w głowie ani po rozpisaniu przypadków w których "algorytm" nie działa.
Mając do dyspozycji
wagę szalkową znajdź fałszywą monetę w jak najmniejszej liczbie ważeń. W sumie, wystarczy, że podasz
liczbę ważeń potrzebną w najgorszym przypadku.
Na przykład wśród 10 monet, fałszywkę można znaleźć w 3 ważeniach:
1. w pierwszym ważeniu dzielimy monety po połowie na obie szalki, jedna z szalek opadnie, więc wśród
tych pięciu monet jest ta cięższa,
2. w drugim ważeniu kładziemy po dwie monety na lewej i prawej szalce, a piątą monetę kładziemy obok
wagi. Gdy szalki będą na równym poziomie, to właśnie ta moneta była najcięższa. Ale to nie byłby
najgorszy przypadek, więc możemy przyjąć, że waga wskazała cięższą parę monet,
3. w trzecim ważeniu sprawdzamy, która z dwóch pozostałych monet jest cięższa. To ona jest fałszywa.
Można udowodnić, że w przypadku 10 monet nie da się wykryć fałszywej w mniej niż trzech ważeniach
//////////////////////////
Ja mam świadomość, że nie powinienem się tu błaźnić z takim pytaniem, ale problem jest bardziej matematyczny niż informatyczny. Dzięki z góry za pomoc.