0 eta 100 bitartean dagoen zenbaki osoa pentsatuko dugu eta ordenadoreak galdera batzuk eginez zenbaki hori asmat uko digu. Algoritmoa hauxe da:
- Zenbaki osoa pentsatu dugu, 0 eta 100 bitartean dagoen zenbaki osoa pentsatu dugu.
- Ezezaguna den zenbakiaren heina [0, 100] da hasieran, behemuga 0 eta goimuga 100. Beraz, iBehemuga:=0 eta iGoimuga:=100
- Errepikatu zenbakia asmatu arte edo 7 saiakera egin arte:
- Proposatuko digun soluzioa kalkulatu, soluzioa: baligarria den heinaren erdia. Beraz, iSoluzioa := (iBehemuga + iGoimuga) DIV 2
- Programak galdetuko digu proposatu duen soluzioa egokia den ala ez, aukerak:
- B, bai, proposatutako zenbakia guk pentsatu duguna izan da (begiztatik irten).
- H, ez, proposatutako zenbakia ez da guk pentsatutakoa, proposatutako zenbakia gurea baino handiagoa da (heinaren iGoimuga aldatu eta 3. urratsaren hasierara itzuli saiakera berri bat egiteko).
- T, ez, proposatutako zenbakia ez da guk pentsatutakoa, proposatutako zenbakia gurea baino txikiagoa da (heinaren iBehemuga aldatu eta 3. urratsaren hasierara itzuli saiakera berri bat egiteko).
- Emaitza erakutsi, begiztatik irteteko aukerak:
- Gure erantzuna B izan denez, ordenadoreak gure zenbakia asmatu du: iSoluzioa erakutsi.
- Saiakerak 7 baino gehiago izan dira, horrek esan nahi du ez dugula zuzen jokatu eta gure erantzunetan gezurra esan diogula programari.
Zergatik 7 saiakera?
1-tik 100-ra, biak barne, 101 aukera. Beraz:
log2(101)=6,658
logaritmo (2 oinarrian) 101 zenbakiarena 6,658 da
|
Ikusi programaren balizko exekuzio bat:
Eta hau da...

iruzkinik ez:
Argitaratu iruzkina