• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Znajdowanie najcięższego i najlżejszego przedmiotu najmniejszą liczbą ważeń

Cloud VPS
+1 głos
844 wizyt
pytanie zadane 16 lutego 2016 w Algorytmy przez Janusz programowania Bywalec (2,710 p.)

Rozwiązując arkusze maturalne z informatyki natknąłem się na te zadanie(matura 2002):

Danych jest n przedmiotów o niewielkich gabarytach i różnych wagach. Jest też do
dyspozycji waga z dwiema szalkami, ale nie ma odważników. Kładąc na wadze przedmioty
a i b, za pomocą jednego ważenia można ustalić, który przedmiot jest lżejszy.

Zapisz algorytm, który wykonuje możliwie najmniej ważeń i podaj liczbę ważeń w tym algorytmie.

najbardziej punktowana odpowiedź to 3n/2-2

Teraz w czym tkwi mój problem:

idąc na łatwiznę(znajdywanie najmniejszej i największej oddzielnie) liczba ważeń to 2n-2

Jedyny sensowny algorytm na jaki wpadłem wygląda tak, że wybieramy najlżejszy przedmiot i po kolei porównujemy, jeśli następuje zamiana, to wcześniejszy przedmiot nie jest dalej brana pod uwagę(pod warunkiem, że nie jest to pierwsze ważenie). Jeśli nastąpiło n-1 zamian, to od razu możemy wskazać najlżejszy i największy przedmiot(ustawione malejąco), więc w tym przypadku ważeń było n-1. Jeśli nie było żadnej zamiany( ustawione rosnąco), lub mniej niż n-1 to znajdujemy najcięższy przedmiot nie biorąc pod uwagę odrzucanych przedmiotów przy zamianie.

Więc w najbardziej sprzyjającym przypadku potrzebujemy n-1, a w najmniej 2n-3 ważeń. Ilość ważeń zależy od ustawienia liczb.

poza tym 3n/2-2 może być liczbą niecałkowitą(co jest przecież niemożliwe...)

Gdzie w moim rozumowaniu jest błąd?

Mam nadzieję, że w tym chaosie zrozumiecie sens laugh​.

 

1 odpowiedź

+1 głos
odpowiedź 16 lutego 2016 przez Janusz programowania Bywalec (2,710 p.)
 
Najlepsza
Chyba już wiem o co chodzi.(2n-3)+(n-1)=3n/2-2

Podobne pytania

0 głosów
3 odpowiedzi 3,018 wizyt
pytanie zadane 2 sierpnia 2016 w C# przez Stami Gaduła (3,790 p.)
0 głosów
3 odpowiedzi 3,978 wizyt
+1 głos
3 odpowiedzi 1,490 wizyt
pytanie zadane 11 listopada 2015 w C i C++ przez Evelek Nałogowiec (28,960 p.)

93,454 zapytań

142,448 odpowiedzi

322,717 komentarzy

62,831 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...