2023(e)ko otsailaren 24(a), ostirala

6. astea | zenbaki bat asmatzen

Guk pentsaturiko zenbakia ordenadoreak asmatuko digu



0 eta 100 bitartean dagoen zenbaki osoa pentsatuko dugu eta ordenagailuak galdera batzuk eginez zenbaki hori asmatuko digu. Algoritmoa hauxe da:


  1. Zenbaki oso bat pentsatu dugu, hots, 0 eta 100 bitartean dagoen zenbaki osoa pentsatu dugu

  2. Ezezaguna den zenbakiaren heina [0, 100] da hasieran, behemuga 0 eta goimuga 100. Beraz, iBehemuga:=0 eta iGoimuga:=100

  3. Errepikatu zenbakia asmatu arte edo 7 saiakera egin arte:


    • Programak proposatuko digun soluzioa kalkulatuko du, soluzioa: baligarria den heinaren erdia. Beraz, iSoluzioa := (iBehemuga + iGoimuga) div 2

    • Programak galdetuko digu proposatu duen soluzioa egokia den ala ez, aukerak:


      • B, bai, proposatu digun zenbakia guk pentsatu duguna izan da (begiztatik irten)

      • H, ez, proposatu digun zenbakia ez da guk pentsatutakoa, proposatu digun zenbakia gurea baino handiagoa da (heinaren iGoimuga aldatu eta 3. urratsaren hasierara itzuli saiakera berri bat egiteko)

      • T, ez, proposatu digun zenbakia ez da guk pentsatutakoa, proposatu digun zenbakia gurea baino txikiagoa da (heinaren iBehemuga aldatu eta  3. urratsaren hasierara itzuli saiakera berri bat egiteko)



  4. Emaitza erakutsi, begiztatik irteteko aukerak:


    • Gure erantzuna B izan denez, ordenagailuak 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?


  0-tik 100-ra, biak barne, 101 aukera. Urrats bakoitzean,

  aukera guztietatik erdiak baztertzen dira. Beraz:


log2(101)=6,658


  logaritmo (2 oinarrian) 101 zenbakiarena 6,658 da

  2x = 101   >>>   ln(2x) = ln(101)   >>>
x·ln(2) = ln(101) >>> x = ln(101)/ln(2)
x = 4.61512/0.69315 = 6.65821 >>> x=7





Ikusi ZenbakiaAsmatu.exe programaren balizko exekuzio bat:









Eskatzen den ariketaren hurbilpen hau... ZenbakiaAsmatu_hasiera.pas ...abiapuntutzat har daiteke. Hona hemen... ZenbakiaAsmatu.pas ...iturburu-programa, eta...   ZenbakiaAsmatu_azpiprogramak.pas beste iturburu-programa bat da. Ikusten denez, soluzio bakarra ez dago, zein da zurea?




 

iruzkinik ez:

Argitaratu iruzkina