Рубрика «Алгоритмы» - 6
Способы возведения в степень в Python
2024-06-25 в 6:29, admin, рубрики: python, Алгоритмы, возведение в степень, дзен, математика, Программирование, производительность, функция, числаВ Дзене Python есть принцип, согласно которому "должен существовать один и желательно только один очевидный способ сделать это". Однако в Python есть как минимум три способа возведения числа в степень:
-
оператор
**
-
встроенная функция
pow()
-
функция
math.pow()
В этой статье мы рассмотрим каждый из способов и разберемся, чем они отличаются.
Оператор **
Оператор **
— это классический оператор возведения в степень. Это в принципе первое, что обычно приходит в голову любому программисту на Python, когда требуется возвести число в степень.
Приведенный ниже код:
Читать полностью »
Новый прорыв приближает умножение матриц к идеалу
2024-05-21 в 9:25, admin, рубрики: алгоритм Штрассена, Алгоритмы, информатика, лазерный метод, матрица, матричное умножение
Устранив скрытую неэффективность, учёные придумали новый способ умножения больших матриц, который работает быстрее, чем когда-либо.
Учёные, занимающиеся информатикой, — это требовательная группа. Им недостаточно получить правильный ответ — цель почти всегда состоит в том, чтобы получить ответ как можно эффективнее.
Почему для меня так важен алгоритм CORDIC
2024-05-19 в 9:00, admin, рубрики: cordic, ruvds_перевод, Алгоритмы, математика, тригонометрия
CORDIC — это алгоритм для вычисления тригонометрических функций вроде
sin
, cos
, tan
и тому подобных на маломощных устройствах без использования модуля обработки операций с плавающей запятой или затратных таблиц поиска. По факту он сводит эти сложные функции до простых операций сложения и битового сдвига.
Перейду сразу к делу и скажу, почему я так сильно люблю этот алгоритм, а затем займёмся изучением принципов его работы. По сути, фактические операции CORDIC весьма просты — как я уже сказал, это сдвиги и сложение — но выполняет он их путём комбинирования векторной арифметики, тригонометрии, доказательств сходимости и продуманных техник компьютерных наук. Лично я считаю, что именно это имеют ввиду, описывая его природу, как «элегантную».Читать полностью »
ChatGPT как мутная ксерокопия Интернета
2024-05-12 в 18:11, admin, рубрики: chatgpt, llm, natural language processing, Алгоритмы, искусственный интеллектФильтр Блума
2024-04-10 в 8:01, admin, рубрики: algorithms, bloom filter, data structures, javascript, timeweb_статьи_перевод, Алгоритмы, структуры данных, фильтр блума
У каждого разработчика есть набор инструментов для решения различных задач. Однако со временем возникает необходимость расширять этот набор, чтобы эффективно справляться с более сложными задачами. В этой статье я хочу познакомить вас с инструментом, которым вы, скорее всего, раньше не пользовались. И хотя он подходит для решения узкого спектра задач, его использование может оказаться весьма полезным. Знакомьтесь — "фильтр Блума" (Bloom filter).
Про решаемость пятнашек
2024-04-05 в 13:28, admin, рубрики: Алгоритмы, головоломки, логические игры, пятнашкиПривет, я создатель известного в узких кругах приложения 15 Puzzle для Android.
В статье я расскажу, как я генерирую стартовые позиции для своей игры, а также о том, как я добавлял новые конфигурации головоломки.
Игра "Пятнашки"
Классическая игра "Пятнашки" состоит из сетки 4x4, содержащей фишки с числами от 1 до 15 и одну пустую клетку:

Цель игры - перемещая фишки, расположить их в возрастающем порядке:
Охота на недостающий тип данных
2024-03-15 в 13:00, admin, рубрики: nosey parker, python, ruvds_перевод, sparql, sql, Алгоритмы, графы, типы данных
Все графы созданы с помощью graphviz (источник)
В сфере разработки ПО графы используются повсеместно:
- Зависимости пакетов, как и импорт модулей, формируют направленные графы.
- Интернет — это граф, состоящий из ссылок между веб-страницами.
- При проверке моделей анализ выполняется путём изучения «пространства состояний» всех возможных конфигураций. Узлы — это состояния, а рёбра — это допустимые переходы между ними.
- Реляционные базы данных — это графы, в которых узлы являются записями, а рёбра — внешними ключами.
- Графы — это обобщение связанных списков, двоичных деревьев и хэш-таблиц.1
Кроме того, графы также широко используются в бизнес-логике. Научные работы со ссылками формируют графы цитат. Транспортные сети представляют графы маршрутов. Социальные сети — это графы связей. Если вы работаете в сфере разработки, то рано или поздно встретитесь с графами.
Я вижу графы повсюду и использую их для анализа всевозможных систем. В то же время я побаиваюсь использовать их в коде. Какой из популярных языков программирования ни возьми, поддержка графов в них практически отсутствует. Ни в одном её нет в виде встроенного типа, очень мало где они прописаны в стандартной библиотеке, и у многих языков нет для этой функциональности надёжного стороннего пакета. Чаще всего мне приходится создавать графы с нуля. Существует большой разрыв между тем, как часто инженерам ПО могут понадобиться графы и тем, в какой степени экосистема их поддерживает. Где все графовые типы?Читать полностью »
Как мы оцифровали футбольные матчи с помощью CV
2024-02-27 в 7:09, admin, рубрики: computer vision, sportech, Алгоритмы, анализ данных, обработка видео, спорт, стриминг, яндекс
Привет! Меня зовут Владимир Цуканов, я СТО спортивного направления в Яндекс Плюсе. Мы занимаемся съёмкой, обработкой и стримингом спортивных событий. В этом посте я расскажу о работе с технической съёмкой и анализом футбольных матчей.
Переворачивающиеся при умножении числа
2024-02-24 в 13:30, admin, рубрики: Алгоритмы, палиндром, системы счисления, умножение
Здравствуйте!
Расскажу о серии задач, которая случайно возникла в процессе решения другой задачи. Мне на глаза попалось равенство:
81 * 27 = 2187
– Интересно, – подумал я. – А бывают ли ещё такие числа, чтобы цифры слева и справа повторялись?
Всего нашлось 7 двузначных пар, включая одну с теми же цифрами:
15 * 93 = 1395
21 * 60 = 1260
21 * 87 = 1827
27 * 81 = 2187
30 * 51 = 1530
Читать полностью »