C, PHP, VB, .NET

Дневникът на Филип Петров


Авторски архив

* Плаващите училища в Бангладеш

Публикувано на 29 март 2024 в раздел История.

В Бангладеш около 20% от територията на страната страда от тежки наводнения по време на мусоните. Говорим за период от началото на месец юни до средата и понякога дори до края на октомври. В по-критични ситуации понякога се стига и до над 70% потопена територия. Бедствията от наводненията по това време на годината са много чести.
Можете да си представите колко тежко е за живот на хората от такива райони. Очаквано те не строят масивни постройки, които могат да бъдат унищожени ако се потопят под вода, а по-скоро живеят в леки колиби, които могат лесно да бъдат възстановени за кратко време. А какво се случва с училищата? Прочети още…

.

 


* Покриващи индекси

Публикувано на 12 декември 2023 в раздел Бази от Данни.

Разработчици знаят, че тежките заявки могат да подобрят значително бързодействието си при наличие на индекси при колоните, които участват в условието WHERE. Това обикновено води до значително подобрение. Има обаче една техника, която може да ускори нещата дори още повече. Нарича се „покриващи индекси“. Прочети още…

.

 


* Дължина на отсечка с краища произволни точки от страни на квадрат

Публикувано на 14 ноември 2023 в раздел Вероятности.

Нека е даден квадрат, чиято страна е с дължина [mathi]l[/mathi]. Върху страните на квадрата са избрани произволни точки [mathi]P[/mathi] и [mathi]Q[/mathi]. Каква е вероятността [mathi]|PQ|>l?[/mathi]? Прочети още…

.

 


* Триъгълник в квадрат

Публикувано на 25 октомври 2023 в раздел Вероятности.

Нека е даден квадрат [mathi]ABCD[/mathi] чиято страна е с дължина [mathi]a[/mathi]. Избираме произволна точка [mathi]P[/mathi] вътре в квадрата. Каква е вероятността [mathi]\triangle ABP[/mathi] да е тъпоъгълен? Прочети още…

.

 


* Страниране

Публикувано на 17 октомври 2023 в раздел Бази от Данни.

Когато информацията на някоя страница е много, понякога решаваме да направим т.нар. страниране. Това означава да покажем първите няколко записа и след тях да поставим връзки към следваща страница, на която ще се покажат следващите няколко записа. Тоест даваме възможност на потребителят да прелиства напред-назад като в книга, вместо да му изсипваме цялото съдържание накуп. Как се постига това в MySQL/MariaDB? Прочети още…

.

 


* Нестандартна задача с претегляния на монети

Публикувано на 28 септември 2023 в раздел Математика.

Имате 10 купчинки с по 10 монети от 2 лева. В една от купчинките монетите са фалшиви. Знаете, че истинска монета от 2 лв. тежи 9 грама, а фалшива монета тежи 8 грама. Имате и много прецизен електронен кантар. Как може само с ЕДНО претегляне да определите коя е купчинката с фалшиви монети?

Прочети още…

.

 


* Играта с плувеца и гоблина

Публикувано на 06 юли 2023 в раздел УКИ.

Дадено е кръгло езеро. Един плувец влиза да се къпе в него. Изведнъж на брега се появява гоблин. За щастие лошият гоблин не може да плува. За нещастие той е много по-бърз от плувеца. Прочети още…

.

 


* Монитори и семафори в Java

Публикувано на 04 юли 2023 в раздел ПИК3 Java.

Вече съм показвал няколко примери с употребата на монитори. Зад кадър в тях стои т.нар. мютекс (mutex) – представете си го като ключалка (променлива със стойности „отключено“ и „заключено“). Идеята е, че когато някоя нишка заключи мютекса, други могат да видят това и съответно да спрат и да изчакат, докато тя си свърши работата. Мониторите автоматизират този процес, като организират централизирано управлявана опашка за изчакване на ресурсите. Това се прави чрез синхронизирани блокове или синхронизирани методи. Тук просто ще припомня с елементарен пример. Прочети още…

.

 


* Бързо степенуване

Публикувано на 03 юли 2023 в раздел Информатика.

Степенуването е основна математическа операция и е очаквано да се използва често. Интуитивната реализация на алгоритъм за изчисление на [mathi]x^{n}[/mathi] би била „умножаваме [mathi]x[/mathi] по себе си [mathi]n[/mathi] на брой пъти“. Тоест нещо подобно на следното: Прочети още…

.

 


* Алгоритъм на Флажоле-Мартин за определяне на кардиналност на мултимножество

Публикувано на 29 юни 2023 в раздел Информатика.

Мултимножествата са множества, за които повторенията от елементи се отчитат и са от значение. Например мултимножеството {1, 1, 1, 2} е различно от мултимножеството {1, 1, 2}, защото имат различни елементи в него. Подредбата обаче няма значение. За такива множества често ни интересува т.нар. кардиналност (мощност): броят на различните елементи. Или казано по-просто – ако вземем едно цялото количество от всички обекти в едно мултимножество, колко от тях са различни? Прочети още…

.