prologda faktorial hisoblash

DOCX 4 sahifa 27,3 KB Bepul yuklash

Sahifa ko'rinishi (4 sahifa)

Pastga aylantiring 👇
1 / 4
mavzu:34.prologda rekursiya va faktorial hisoblash. reja 1. prologda rekursiya va faktorial hisoblash. 2. prologda faktorial hisoblash funksiyalari. rekursiya - bu hisoblash usuli bo'lib, unda boshlang'ich masala o'xshash masalalar ketma-ketligiga qisqartiriladi, oxirgisi to'g'ridan-to'g'ri echimga ega. muammoning to'g'ridan-to'g'ri echimi chegara shartlari deb ataladi. hisoblash muammolari mantiqiy dasturlash doirasiga kirmasa ham, misol tariqasida faktoriy hisoblash yordamida rekursiya mexanizmini ko'rib chiqamiz. bunda o'xshash va soddaroq masalaga o'tish munosabat yordamida amalga oshiriladi n!=(n-1)! n. masalaning to'g'ridan-to'g'ri yechimi (chegara shartlari) (0) ga teng! = 1, 1! = 1. keling, predikat bilan tanishamiz fakt: (integer, integer) protsedurasi (i,o), bu erda birinchi argument n, ikkinchisi esa natija, ya'ni. n!. prologda yechim shunday yoziladi sinf predikatlari fakt: (integer,integer) protsedurasi(i,o). bandlar classinfo ("faktorial", "1,0"). fakt(0,1):-!. fakt(n,r):-m=n-1,fakt(m,r1),r=r1*n. ishga tushirish():- console::init(),stdio::write("kirish raqami:"),fakt(stdio::read(),r),stdio::nl, stdio::write("faktorial ",r). rekursiv qo'ng'iroqlar natijasida stek tarkibi quyidagi tartibda (pastdan yuqoriga) hosil bo'ladi: qisqartirish bosqichi yechim bosqichi r3=3 r2 r3=3 2=6 r2 =2 r1 r2 =2 1=1 r1=1 r0 r1=1 …
2 / 4
hadlari yig‘indisini topish zarur bo‘lsin bir qarashda buni ikkita predikat yordamida qilish oson, ulardan biri faktorialni, ikkinchisi esa quvvat funksiyasini hisoblab chiqadi. ammo, shuni hisobga olgan holda u holda yig'indidagi har bir a'zo ham rekursiv hisoblab chiqiladi va masalani bitta predikat ichida hal qilish mumkin. predikat hosil qilish sum_n: (real, butun, real, real) protsedura (i,i,o,o), argumentlari quyidagi ma'noga ega: o'zgaruvchan , atamalar soni, natija, operatsion parametr. chegara holati shunday ko'rinadi summa_n(_,0,1,1), predikatning o‘zi esa shunday yoziladi sum_n(x,n,r,w):-m=n-1, summa_n(x,m,r1,w1),w=w1*x/n,r=r1+w. uning chaqiruvi, masalan, bo'ladi ? sum_n(0.2,4,z,_). agar muammoning formulasini shunday o'zgartirsak, bu yig'indini ma'lum bir aniqlik bilan topish kerak bo'lsa, unda tegishli predikatning tuzilishi va hisob-kitoblarning borishi sezilarli darajada o'zgaradi. yig‘indining oxirgi hadining mutlaq qiymati berilgan xatolikdan oshmasligi sharti aniqlik darajasi bo‘lsin. bunda chegaraviy holatga o'tish kamayish (pasayuvchi rekursiya) yo'li bilan amalga oshirilmaydi, aksincha, u maqsadli bayonot bilan birlashtirilishi kerak. keyin predikat va qo'ng'iroq shaklni oladi summa_e(x,n,r,rout,w,e):- abs(w)>e,m=n+1,w1=w*x/m,r1=r+w1, summa_e (x, m, r1, …
3 / 4
, facts, sum):- nth0(head, facts, headfact), facts_sum(tail, facts, tailsum), sum is tailsum + headfact. bu erda kiritish faktoriallarni hisoblash va ularni bir-biriga qo'shish (yig'ish) kerak bo'lgan raqamlar ro'yxatidir. faktorialni tez hisoblash uchun bu yerda raqamlar faktoriallarining oldindan tayyorlangan ro'yxatidan foydalaniladi. endi muammoni hal qilish uchun diapazondagi barcha raqamlarni ko'rib chiqish kifoya - o'rtasida dan foydalanib, har bir raqamni raqamlarga bo'ling va fact_sum funksiyasini chaqiring: find(from, to, facts, x):- between(from, to, x), digits(x, digits), facts_sum(digits, facts, sum), x == sum. ushbu funktsiya faktoriallarning oldindan tayyorlangan ro'yxatini kiritish sifatida qabul qiladi. funktsiya faqat shartga mos keladigan raqamlarni qaytaradi. ro'yxatni yaratish va natijalarni ko'rsatish yordamchi funktsiya tomonidan amalga oshiriladi: find(from, to):- generate_facts(0, 1, 9, facts), !, find(from, to, facts, x), write(x), nl, fail. raqamlar faktoriallari ro'yxati bu erda faqat 1 marta hosil qilinadi - bu takrorlanmasligi uchun - kesish qo'llaniladi. keyinchalik, diapazondagi barcha raqamlar uchun qidiruv amalga oshiriladi, topilgan har bir raqam ekranda …
4 / 4
prologda faktorial hisoblash - Page 4

Ko'proq o'qimoqchimisiz?

Barcha 4 sahifani Telegram orqali bepul yuklab oling.

To'liq faylni yuklab olish

"prologda faktorial hisoblash" haqida

mavzu:34.prologda rekursiya va faktorial hisoblash. reja 1. prologda rekursiya va faktorial hisoblash. 2. prologda faktorial hisoblash funksiyalari. rekursiya - bu hisoblash usuli bo'lib, unda boshlang'ich masala o'xshash masalalar ketma-ketligiga qisqartiriladi, oxirgisi to'g'ridan-to'g'ri echimga ega. muammoning to'g'ridan-to'g'ri echimi chegara shartlari deb ataladi. hisoblash muammolari mantiqiy dasturlash doirasiga kirmasa ham, misol tariqasida faktoriy hisoblash yordamida rekursiya mexanizmini ko'rib chiqamiz. bunda o'xshash va soddaroq masalaga o'tish munosabat yordamida amalga oshiriladi n!=(n-1)! n. masalaning to'g'ridan-to'g'ri yechimi (chegara shartlari) (0) ga teng! = 1, 1! = 1. keling, predikat bilan tanishamiz fakt: (integer, integer) protsedurasi (i,o), bu erda birinchi argu...

Bu fayl DOCX formatida 4 sahifadan iborat (27,3 KB). "prologda faktorial hisoblash"ni yuklab olish uchun chap tomondagi Telegram tugmasini bosing.

Teglar: prologda faktorial hisoblash DOCX 4 sahifa Bepul yuklash Telegram