Kurzusok
/
Lean
Lean
/
Feladatok
/
Két vödör
Két vödör

Két vödör

Közepes

Utasítások

Adott két különböző méretű vödör, valamint az, hogy melyik vödröt kell először megtölteni. Határozd meg, hány műveletre van szükség egy pontos litermennyiség kiméréséhez úgy, hogy a folyadékot stratégikusan átöntöd a vödrök között.

A megoldásodnak be kell tartania néhány szabályt:

  • Egyszerre csak egy műveletet hajthatsz végre.
  • Csak 3 lehetséges művelet van:
    1. Az egyik vödröt átöntöd a másikba, amíg: a) az első vödör ki nem ürül b) a második vödör meg nem telik
    2. Kiürítesz egy vödröt, és a másikkal nem csinálsz semmit.
    3. Megtöltesz egy vödröt, és a másikkal nem csinálsz semmit.
  • Egy művelet után nem kerülhetsz olyan állapotba, ahol a kezdeti, kiinduló vödör üres, a másik pedig tele van.

A programod a következő bemeneteket kapja:

  • az első vödör mérete
  • a második vödör mérete
  • az elérendő kívánt litermennyiség
  • hogy melyik vödröt kell először megtölteni: az elsőt vagy a másodikat

A programodnak meg kell határoznia:

  • a kívánt litermennyiség eléréséhez szükséges műveletek teljes számát, beleértve a kezdő vödör első megtöltését is
  • hogy melyik vödörben legyen végül a kívánt litermennyiség: az elsőben vagy a másodikban
  • hány liter marad a másik vödörben

Megjegyzés: ha bármelyik vagy mindkét vödör állapota megváltozik, az egy (1) műveletnek számít.

Példa: Az első vödörbe legfeljebb 7 liter fér, a másodikba pedig legfeljebb 11 liter. Tegyük fel, hogy egy adott lépésnél az első vödörben 7 liter, a másodikban 8 liter van (7,8). Ha kiüríted az első vödröt, és a másodikat nem változtatod meg, így 0, illetve 8 liter marad (0,8), az egy műveletnek számít. Ha viszont az első vödörből addig öntöttél volna a másodikba, amíg az meg nem telik, aminek eredményeként 4 liter lesz az első vödörben és 11 liter a másodikban (4,11), az szintén csak egy műveletnek számítana.

Egy másik példa: Az első vödörbe 3 liter fér, a másodikba pedig legfeljebb 5 liter. Az utasítás szerint az első vödörrel kell kezdened. Tehát az első műveleted az első vödör megtöltése. Második műveletként úgy döntesz, hogy kiüríted az első vödröt. A harmadik műveletnél nem töltheted meg a második vödröt, mert ez megsértené a harmadik szabályt: egyetlen művelet után sem kerülhetsz olyan állapotba, ahol a kezdő vödör üres, a másik pedig tele van.

<3-tel írta Lindsay Levine a Fullstack Academy szervezésében.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Lean Exercism

Készen állsz elkezdeni a(z) Két vödör feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Lean nyelvet 100 feladat segítségével, valódi emberi mentorálással, mindez ingyen.