• 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ń

HackNation - ogólnopolski hackathon
+1 głos
886 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,131 wizyt
pytanie zadane 2 sierpnia 2016 w C# przez Stami Gaduła (3,790 p.)
0 głosów
3 odpowiedzi 4,148 wizyt
+1 głos
3 odpowiedzi 1,564 wizyt
pytanie zadane 11 listopada 2015 w C i C++ przez Evelek Nałogowiec (28,960 p.)

93,626 zapytań

142,551 odpowiedzi

323,044 komentarzy

63,130 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1452p. - dia-Chann
  2. 1437p. - DziarnowskiJ
  3. 1411p. - Łukasz Piwowar
  4. 1409p. - CC PL
  5. 1388p. - Maurycy W
  6. 1371p. - raydeal
  7. 1369p. - Adrian Wieprzkowicz
  8. 1360p. - Tomasz Bielak
  9. 1335p. - robwarsz
  10. 1296p. - Michal Drewniak
  11. 1141p. - ssynowiec
  12. 1116p. - rucin93
  13. 1102p. - Dominik Łempicki (kapitan)
  14. 1100p. - Mariusz Fornal
  15. 1048p. - Rafał Trójniak
Szczegóły i pełne wyniki

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
...