<?xml version="1.0"?>
<rss version="2.0">
   <channel>
      <title>Динамичко програмирање
 by Nina Kraleva</title>
      <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft</link>
      <description></description>
      <language>en-us</language>
      <pubDate>2025-05-22 18:04:44 UTC</pubDate>
      <lastBuildDate>2025-05-22 19:18:21 UTC</lastBuildDate>
      <webMaster>hello@padlet.com</webMaster>
      <image>
         <url></url>
      </image>
      <item>
         <title>Слајд 1: Вовед</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463591263</link>
         <description><![CDATA[<p>Здраво на сите! Денес ќе зборуваме за еден концепт од алгоритмите кој се вика динамичко програмирање. Иако звучи малку технички или апстрактно, всушност идејата е прилично логична и блиска до тоа како размислуваме во секојдневни ситуации.</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-05-22 18:07:05 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463591263</guid>
      </item>
      <item>
         <title>Слајд 2: Што е динамичко програмирање?</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463595069</link>
         <description><![CDATA[<p>Ајде да почнеме со едноставна идеја – дали има смисла повторно да решаваме нешто што веќе сме го решиле? Динамичкото програмирање токму тоа го избегнува.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/3880807055/463690cbad573c79f2aa133ec954edbc/image.png" />
         <pubDate>2025-05-22 18:10:30 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463595069</guid>
      </item>
      <item>
         <title>Слајд 3: Примери од вистинскиот свет</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463599229</link>
         <description><![CDATA[<p>Ако имаме 10 книги и знаеме дека зборот „херој“ се спомнува вкупно 1000 пати, и некој донесе уште една книга. Колку пати сега се спомнува зборот? Се разбира нема од почеток да ги читаме сите книги и да го броиме одново зборот, само ќе ја прочитаме последната книга и зборовите што сме ги избројале таму, ќе ги додадеме на претходните 1000. </p><p>Ова е суштината на динамичкото програмирање – да не го повторуваме тоа што веќе го знаеме, туку да го користиме како дел од новото решение.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/3880807055/f9395097815ec3e419e7ee17c3a54da4/image.png" />
         <pubDate>2025-05-22 18:14:34 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463599229</guid>
      </item>
      <item>
         <title>Слајд 4: Една поконкретна дефиниција</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463603399</link>
         <description><![CDATA[<p>Што е динамичко програмирање? - Техника за решавање на комплексни проблеми преку: </p><p>• Разбивање на проблемот на помали делови (Divide and conquer) </p><p>• Решавање на секој мал дел </p><p>• Паметење на решенијата (Memoization) </p><p>• Комбинирање за финалниот резултат</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-05-22 18:17:47 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463603399</guid>
      </item>
      <item>
         <title>Слајд 5: Едноставен пример
</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463607244</link>
         <description><![CDATA[<p>Треба да собереме 1+1+1+1+1+1+1+1 што е еднакво на 8, ако треба да додадеме уште +1, на 8 ке додадеме 1 што е 9, наспроти скроз одпочеток да ги собираме сите единици. </p><p>Кога решаваме покомплексни проблеми – сакаме да го направиме истото.</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-05-22 18:21:42 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463607244</guid>
      </item>
      <item>
         <title>Слајд 6: Каде се користи?
</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463608313</link>
         <description><![CDATA[<p>Голем дел од технологиите што ги користиме денес, како препораки на Netflix, патеки на Google Maps, па дури и ChatGPT, користат концепти базирани на динамичко програмирање.</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-05-22 18:22:26 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463608313</guid>
      </item>
      <item>
         <title>Проблем 1 - Најмал број во низа</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463610687</link>
         <description><![CDATA[<p>✔ Опис на проблемот:</p><p>•Дадена е низа од цели броеви.</p><p>•Потребно е ефикасно да се одговори на прашањето: Кој е најмалиот број од првите X елементи во низата?</p><p><br></p><p>🧠 Идеја за решавање:</p><p>•Доколку го знаеме најмалиот број до позиција i-1, лесно можеме да го најдеме најмалиот до i.</p><p>•Користиме динамичко програмирање за да ги запамтиме решенијата до секоја позиција.</p><p><br></p><p>📌 Пример:</p><p>Низа: [15, 14, 12, 13, 9, 7, 13, 13, 14, 100]</p><p>Најмал од првите 4 елементи: 12</p><p>Најмал од првите 9 елементи: 7</p><p><br></p><p>Важно е да се запамти тоа што работи само за интервали од првата до х-позиција. Но и за други интервали може да се направи решение со динамичко програмирање, но нема да биде ова. Временска сложеност од O(N) за пресметувањето каде што се пополнува низата, О(1) за одговор на прашањето.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/3880807055/dbda7f127ef7899d149293d0e0097346/image.png" />
         <pubDate>2025-05-22 18:24:55 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463610687</guid>
      </item>
      <item>
         <title>Проблем 2.1 - Фибоначи броеви</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463615114</link>
         <description><![CDATA[<p>Еве имаме приказ како функционира фибоначи. Гледаме дека фибоначи од 4, 3, 2 и 1 се викаат повеќе пати. Аако бараме фибоначи секвенца од поголем број од 5, ова ќе одземе многу време. Динамичкото програмирање е многу поефикасно за пронаоѓање на фибоначи секвенца зошто се зачувуваат вредностите за секој чекор наместо оддново да се рачуна секој пат.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/3880807055/8bb42a57c01b8972e7045a27ebf0f471/image.png" />
         <pubDate>2025-05-22 18:29:23 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463615114</guid>
      </item>
      <item>
         <title>Проблем 2.2 - Фибоначи броеви</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463616411</link>
         <description><![CDATA[<p>Решавање одозгора-надолу/top-down: разгледување на поголемите состојби преку објаснување како тие произлегуваат од помалите. На пример, кај рекурзивното решение наведовме дека N-тиот фибоначиев број е збир од (N-1)-виот и (N-2)-риот. Функцијата понатаму ќе продолжи да се повикува и за се помали вредности, се додека не дојдеме до основната состојба, каде знаеме дека првите два фибоначиеви броеви се еднакви на 1. </p><p><br></p><p>Решавање одоздола-нагоре/bottom-up: почнувајќи со најмалите состојби, правиме пресметки и ги откриваме вредностите за се поголеми состојби. Кај примерот со фибоначиевите броеви, ова значи дека почнуваме со дефинирање дека првите два фибоначиеви броеви се еднакви на 1. Потоа, ја пресметуваме вредноста на третиот број собирајќи ги првите два. Слично, го откриваме четвртиот број, и така натаму, се додека не дојдеме до N-тиот.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/3880807055/6e77c95872ceee2c52f2f99eef6b6920/image.png" />
         <pubDate>2025-05-22 18:30:54 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463616411</guid>
      </item>
      <item>
         <title>Слајд 11: Важни работи при решавање со динамичко програмирање</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463639282</link>
         <description><![CDATA[<p>1. Дефинирање на состојба е подпроблемот што го решаваме. Обично ја запишуваме како dp[i], dp[i][j], итн. Пример во фибоначи проблемот тоа е dp[i] = i-тиот Фибоначи број</p><p>2. Избор на параметри што ја дефинираат состојбата. Уствари кои информации се потребни за да го решиш подпроблемот? Пример во Фибоначи зависиме само од i променливата</p><p>3. Тривијална состојба се почетните вредности – тие ги знаеме однапред! Што се случува кога i = 0, i = 1, итн. Во Фибоначи знаеме дека fib[1]=1 и fib[2]=1, во примерот со најмал број во низата, ако имаме листа од еден број тој секогаш е најмал. Потребни за да можеме да ја изградиме решението чекор по чекор </p><p>4. Трансфер формула со неа преминуваме од познати состојби кон нови. Во Фибоначи беше собирање на двата претходни броја, за најмал број беше барање минимум помеѓу веќе познатиот најмал број и новата вредност што ни следи. Односно како една состојба да ја претставиме преку други подсостојби</p><p>5. Чување на резултати во меморија или некоја структура</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-05-22 18:57:16 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463639282</guid>
      </item>
      <item>
         <title>Проблем 3.1 - Враќање кусур</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463642231</link>
         <description><![CDATA[<p>✔ Опис на проблемот:</p><p>•Имаме неограничен број на монети со дадени вредности. На пример: coins = {1, 2, 5, 7, 10}</p><p>•Сакаме да вратиме кусур од точно X = 19 денари, користејќи најмал можен број на монети.</p><p><br/></p><p>🧠 Идеја за решавање:</p><p>•За секоја сума од 1 до X, пресметуваме колку најмалку монети ни се потребни.</p><p>•Го користиме фактот дека веќе сме ги пресметале оптималните решенија за сите помали суми.</p><p>•За секоја вредност i, пробуваме да ја додадеме секоја монета и да провериме дали се добива подобро решение.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/3880807055/39c17943d58a11747b76cbf6c0d7a55a/image.png" />
         <pubDate>2025-05-22 19:00:38 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463642231</guid>
      </item>
      <item>
         <title>Проблем 3.2 - Враќање кусур</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463643092</link>
         <description><![CDATA[<p>⚙️ Дефинирање на состојбата</p><p>•Нека dp[i] биде минималниот број на монети потребни за да се добие точно сума i.</p><p><br></p><p>🧱 Тривијална состојба</p><p>•dp[0] = 0 (за да вратиме кусур од 0 денари, не ни требаат монети)</p><p><br></p><p>📌 Преод</p><p>•За секоја вредност i од 1 до X, го правиме следново:</p><p>&nbsp;&nbsp;&nbsp; dp[i] = минимум од сите dp[i - coin] + 1&nbsp; за сите монети coin &lt;= i</p><p>•Зошто +1? Бидејќи користиме една дополнителна монета (coin) да го добиеме i од i - coin.</p><p><br></p><p>✅ Параметар:</p><p>•Сумата на пари за која сакаме да најдеме колку најмалку монети ни се потребни за да ја составиме - i.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/3880807055/5eb3ce2ad644e38e0d9cff2e0461f5fa/image.png" />
         <pubDate>2025-05-22 19:01:48 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463643092</guid>
      </item>
      <item>
         <title>Видео од презентација</title>
         <author>ninakraleva01012002</author>
         <link>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463654617</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/3880807055/c8015ccd9c28c28407d528f4d425230e/Dynamic_Programming.mp4" />
         <pubDate>2025-05-22 19:17:19 UTC</pubDate>
         <guid>https://padlet.com/ninakraleva01012002/kxgibsrk2nrvf2ft/wish/3463654617</guid>
      </item>
   </channel>
</rss>
