Рекурсия и рекурсивные алгоритмы Теоретические сведения



Download 229,74 Kb.
Pdf ko'rish
bet5/7
Sana07.07.2022
Hajmi229,74 Kb.
#752413
TuriЛекции
1   2   3   4   5   6   7
Bog'liq
1-Amaliy mashg'ulot topshiriq

D = 5 
D = n 
R(D)=9 R(D)=2fn-1 
R
V
(D)=4 R
V
(D)=fn-1 
R
L
(D)=5 R
L
(D)=fn 
H
R
(D)=4 H
R
(D)=n-1 
Пример 1. Задача о разрезании прямоугольника на квадраты. 
Дан прямоугольник, стороны которого выражены натуральными числами. Разрежьте его на 
минимальное число квадратов с натуральными сторонами. Найдите число получившихся 
квадратов. 
Разработаем рекурсивную триаду. 
Параметризация: m, n – натуральные числа, соответствующие размерам прямоугольника. 
База рекурсии: для m=n число получившихся квадратов равно 1, так как данный прямоугольник 
уже является квадратом. 
Декомпозиция: если 
, то возможны два случая m < n или m > n. Отрежем от 
прямоугольника наибольший по площади квадрат с натуральными сторонами. Длина стороны 
такого квадрата равна наименьшей из сторон прямоугольника. После того, как квадрат будет 
отрезан, размеры прямоугольника станут следующие: большая сторона уменьшится на длину 
стороны квадрата, а меньшая не изменится. Число искомых квадратов будет вычисляться как 
число квадратов, на которые будет разрезан полученный прямоугольник, плюс один (отрезанный 
квадрат). К получившемуся прямоугольнику применим аналогичные рассуждения: проверим на 
соответствие базе или перейдем к декомпозиции (
рис. 34.2
). 


Рис. 34.2.
Пример разрезания прямоугольника 13x5 на квадраты 
#include "stdafx.h" 
#include  
using namespace std; 
int kv(int m,int n); 
int _tmain(int argc, _TCHAR* argv[]) { 
int a,b,k; 
printf("Введите стороны прямоугольника
->"); 
scanf("%d%d",&a,&b); 
k = kv(a,b); 
printf("Прямоугольник со сторонами %d и %d можно разрезать 
на %d квадратов",a,b,k);
system("pause"); 
return 0; 

int kv(int m,int n){ //m,n 

стороны
прямоугольника
if(m==n) return 1; //
база
рекурсии
if(m>n) return 1+kv(m-
n,n); //декомпозиция для m>n
return 1+kv(m,n-
m); //декомпозиция для m
Характеристиками рассматриваемого метода оценки алгоритма будут следующие величины (
рис. 
34.3
). 

Download 229,74 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish