Citat:
Ursprungligen postat av
Ayncil
Det finns fyra stycken olikfärgade klot. Man vet att de olika kloten väger 1, 2, 3 respektive 4 kg.
Uppgiften är att ta reda på vilket klot som väger vad.
Till hjälp har man en balansvåg.
Vid varje vägning får man lägga hur många klot man vill på varje vågskål. Vågen kan endast tala om vilken sida av vågen som är tyngst.
Frågan är; Hur många vägningar måste man minst göra för att ta reda på vilket klot som väger vad?
Förutom frågetecknen som andra nämnt tycker jag också fler förtydliganden behövs. Jag antar att vågen alltid får ett av utfallen "höger är tyngre", "vänster är tyngre" eller "lika tunga"
Varje vägning vars utfall kan ge dig ny information måste ha 1-2 klot på båda sidor, så varje optimal algoritm måste starta med "2 mot 2" eller "2 mot 1" eller "1 mot 1". Ingen av dessas utfall kan ge dig fullständig information vad som är vad. Men kör du "2 mot 1" och den ensamma är tyngre så måste den ensamma vara 4 kg och den orörda 3 kg och de som vägdes tillsammans är 1 och 2 kg, varpå en vägning mellan dom sedan ger dig fullständig information...
Så det finns en algoritm vars "best-case-performance" är 2 vägningar, men huruvida detta var vad som menades är inte uppenbart från frågeställningen... Kanske menades "worse-case-scenariot" dvs hur många vägningar måste man minst planera om man vill vara säker på att algoritmen ska tala om vad som är vad (oavsett utfall).