Авторски архив
* Дължина на отсечка с краища произволни точки от страни на квадрат
Публикувано на 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 в раздел Математика.
* Играта с плувеца и гоблина
Публикувано на 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}, защото имат различни елементи в него. Подредбата обаче няма значение. За такива множества често ни интересува т.нар. кардиналност (мощност): броят на различните елементи. Или казано по-просто – ако вземем едно цялото количество от всички обекти в едно мултимножество, колко от тях са различни? Прочети още…
* Ограничено наследими (sealed) класове
Публикувано на 29 май 2023 в раздел ПИК3 Java.
Преди Java 17 в езика се следваше подход за наследяване, в който или всеки интерфейс/клас може да бъде разширяван (наследяван) от всеки с extends, или това е забранено чрез ключова дума final. С включването на новата ключова дума sealed се въвеждат ограничено наследими класове. Те дават разрешителен списък, с който се изреждат ограничено количество интерфейси/класове от същия пакет, които могат да имплементират/наследяват текущия. Прочети още…
* Игра на Пексесо в Java – упражнение за събития и обхождане на LinkedList
Публикувано на 17 май 2023 в раздел УКИ.
Ще създадем опростен вариант на играта Пексесо. На игралното поле са разположени четен брой карти с еднакви гърбове (при нашия вариант ще бъдат 20 на брой). Всяка една карта има точно една карта-двойник (двете имат една и съща картинка на лицевата страна). Играчът обръща две карти, след което:
- ако картинките им не са еднакви, той ги връща обратно с гърба нагоре;
- ако картинките им са еднакви, ги оставя с лицето нагоре.
Целта на играта е с максимално малко ходове да се обърнат всички карти с лицето нагоре. Прочети още…