2024(e)ko otsailaren 28(a), asteazkena

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. Saiakera bakoitzeko, ordenagailuari informazioa emango diogu esanez zenbaki ezezaguna zein tartetan dagoen.

  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... ...iturburu-programa, eta...   ...beste iturburu-programa bat da. Ikusten denez, soluzio bakarra ez dago, zein da zurea?

Antzeko algoritmoa aplikatzen da 6. astea | letra bat asmatzen ariketan, non makinak letra bat aukeratzen duen eta guk asmatu behar dugun, LetraAsmatu.pas programaren kodea ikusteko klik egin hemen.

 

iruzkinik ez:

Argitaratu iruzkina

Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.