Форум программистов, компьютерный форум, киберфорум
Thinker
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Старый
Рейтинг: 4.00. Голосов: 1.
Рекурсивные комбинаторные алгоритмы
Запись от Thinker размещена 10.07.2013 в 10:27
Показов 5236 Комментарии 2

Задача о бандероли
За пересылку бандероли надо уплатить 100 рублей. Сколькими способами можно оплатить ее марками стоимостью 1,2,3,5 рублей, если два способа, отличающиеся порядком марок, считаются различными (запас марок различного достоинства считаем неограниченным).
Используем...
Аватар для Thinker
Старый
Быстрый алгоритм Евклида вычисления НОД
Запись от Thinker размещена 10.07.2013 в 10:03
Показов 2162 Комментарии 0

Заинтересовал вопрос о различных реализациях алгоритма Евклида для неотрицательных целых чисел. Ниже привожу алгоритмы, собственноручно написанные, исходя из теоретического материала. Каждый алгоритм можно модифицировать в ту или иную сторону.

Считается, что бинарный алгоритм работает быстрее, но тесты показывают, что во многих случаях два первых алгоритма работают быстрее бинарного.
1. обычный алгоритм Евклида через остатки
Кликните здесь для просмотра всего текста
C++
1
2
long Nod(long a, long b)
{
...
Аватар для Thinker
Старый
Быстрое нахождение суммы делителей натурального числа
Запись от Thinker размещена 10.07.2013 в 09:58
Показов 2482 Комментарии 0

Приведу быстрый алгоритм нахождения суммы делителей. Сумма ищется по формуле
https://www.cyberforum.ru/cgi-bin/latex.cgi?S(a) = \frac{p_1^{a_1+1}-1}{p_1-1}\cdot\frac{p_2^{a_2+1}-1}{p_2-1}...\cdot\frac{p_n^{a_n+1}-1}{p_n-1}, где
https://www.cyberforum.ru/cgi-bin/latex.cgi?a=p_1^{a_1}...p_n^{a_n} - каноническое разложение числа a.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
unsigned long Sum(unsigned long a)
{
   unsigned long sum = 1, k = 1, i;
   if (a == 1)
      return a;
   while ((a & 1) == 0)
   {
      k <<= 1;
      a >>= 1;
   }
...
Аватар для Thinker
Старый
Рейтинг: 5.00. Голосов: 1.
Быстрое нахождение количества делителей натурального числа
Запись от Thinker размещена 10.07.2013 в 09:54
Показов 2305 Комментарии 0

Часто требуется найти количество делителей натурального числа и, по возможности, это надо осуществить очень быстро. В следующем быстром алгоритме количество делителей ищется по формуле
https://www.cyberforum.ru/cgi-bin/latex.cgi?count(a) = (a_1+1)(a_2+1)...(a_n+1), где
https://www.cyberforum.ru/cgi-bin/latex.cgi?a=p_1^{a_1}...p_n^{a_n} - каноническое разложение числа a.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
// быстрый алгоритм без использования дополнительной памяти
unsigned long Count(unsigned long a)
{
   unsigned long count = 1,
...
Аватар для Thinker
Старый
Быстрая проверка натурального числа на простоту
Запись от Thinker размещена 10.07.2013 в 09:49
Показов 3783 Комментарии 0

Часто возникает задача проверки натурального числа на простоту. При этом имеются вероятностные и детерминированные методы проверки. Здесь рассматриваются только детерминированные алгоритмы, дающие 100% ответ на вопрос о простоте.

Хорошо известно такое утверждение: если натуральное число n>1 не делится ни на одно простое число, не превосходящее , то оно простое. В связи с этим получается самый простой способ проверки на простоту алгоритм
Кликните здесь для просмотра всего текста
C++
1
int Prime(unsigned long a)
...
Аватар для Thinker
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru