Nazariy qism Esingizda bo’lsa bu masalani xasislik algoritmlari orqali yechgandik. Xasislik algoritmlarining xususiyatlaridan kelib chiqib, biz o’shanda 3000 natijasini olgandik. Chunki xasislik algoritmi har doim ham optimal yechimni bermaydi, balki, u yechimni tezkorlik bilan topishga yordam beradi. Yechim yetarlicha bo’ladi, lekin optimal bo’lmasligi mumkin. Masala uchun Xasislik algoritmida algoritm murakkabligi bahosi O(n) ga teng.
Dinamik dasturlashda esa, masalaning optimal yechimi topiladi. Bunda masala qism masalalarga ajratilib keyin umumlashtirilgani uchun yechimni olishda xasislik algoritmidan biroz ko’proq vaqt sarflanadi. Yechim esa optimal bo’ladi. Masala uchun Dinamik dasturlashda algoritm murakkabligi bahosi O(n^2) ga teng.
Amaliy qism 1-misol. Shunday uch xonali son topingki, uni 11 ga bo’lganda bo’linma uning raqamlari yig’indisiga teng bo’lsin.
Program L23;
uses Crt;
var a, n, p, s : integer;
begin a := 100;
writeln(' 11 ga bo’lganda bo’linma uning raqamlari yig’indisiga teng ’);
write(‘bo’lgan uch xonali son ');
repeat n := a; s := 0;
repeat p := n mod 10;
s := s + p*p;
n := n div 10