Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/26: Рейтинг темы: голосов - 26, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 18.09.2020
Сообщений: 11

Задача тысячелетия - Равенство классов P и NP

19.09.2020, 09:32. Показов 6001. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Равенство классов P и NP.

Равны ли классы сложности P и NP?

Классом P называют множество задач, которые компьютер может решить «быстро» (то есть за полиномиальное время). К ним относят базовые арифметические действия, сортировку списков, поиск по таблице с данными.

Класс NP — это задачи, правильность ответа на которые можно быстро проверить. Например, задача о сумме. Предположим, что у вас есть монеты номиналом 2, 3, 5, 6 и 7 рублей, по одной каждого номинала, и вы хотите без сдачи оплатить покупку стоимостью 21 рубль. Можно ли набрать из данных монет сумму, равную 21?

В этой задаче для получения ответа нужно перебрать разные варианты, а чтобы доказать, что решения нет, - вообще перебрать все возможные варианты. Если количество монет увеличить на несколько порядков, решение выглядит совсем непрактичным. При этом результат проверить легко — просто сложить номиналы всех монет.

Суть «задачи тысячелетия» формулируется так: равны ли классы P и NP? Если легко проверить правильность решения задачи, может ли быть так же легко решить эту задачу? Большинство специалистов уверены, что ответ отрицательный. Однако доказать этого пока никто не смог. Если же вдруг окажется, что P = NP, то человечество ждет переворот в криптографии.

Это был отрывок из статьи для понимания задачи. Я хочу уточнить: если я найду алгоритм, при помощи которого смогу найти все варианты получения суммы 21, то это значит, что я решил задачу? Можно ли использовать алгоритм, написанный на каком-нибудь языке программирования, ну например на языке Pascal, или я должен использовать для решения этой задачи только формулы и т.д. из математики?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.09.2020, 09:32
Ответы с готовыми решениями:

Стройка тысячелетия
Здравствуйте, помогите с задачкой! Вавилонская башня – это легендарное библейское сооружение. Согласно преданию в начале времен (после...

Алгоритмы тысячелетия
В математике есть величайшие задачи, решение которых еще найдены, а есть ли подобные задачи в программировании? Ясно, что программирование...

I5-4670K vs i5-6600K Выбор тысячелетия)
Привет всем) Помогите выбрать,с максимальным запасом на будущее.

47
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
22.09.2020, 12:33
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от sodda Посмотреть сообщение
у нас есть монеты номиналом -21?
Нет. Для наглядности я не стал производить арифметические действия.

Можно ли набрать из монет {2, 3, 5, 6, 7} сумму, равную 21?
Можно ли набрать из монет {2, 3, 5, 6, 7} сумму, равную 2?

Фактически, это одна и та же задача. И, очевидно, что проверить все варианты "как набрать сумму 2" довольно легко. Повезло, что требуется набрать такую маленькую сумму, которая меньше почти всех имеющихся монет.
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
22.09.2020, 12:34
Цитата Сообщение от sodda Посмотреть сообщение
Задача была про монеты.
Чёрт, я сразу то и не понял...

Lisp 198 17
Священные войны 168 1
Непризнанные теории, гипотезы 167 3
0
Заблокирован
22.09.2020, 12:36
Цитата Сообщение от Shamil1 Посмотреть сообщение
Когда сумма, которую надо набрать близка к 0 или к сумме всех имеющихся монет, то количество вариантов, которые нужно перебрать и проверить, сильно уменьшается.
Когда мы говорим о "задаче тысячелетия", нас интересует решение в общем виде - для любых входных данных.
Это понятно. Но чтобы говорить об общим случае, надо рассмотреть и изучить частные.

Добавлено через 1 минуту
Цитата Сообщение от vantfiles Посмотреть сообщение
Lisp 198 17
Священные войны 168 1
Непризнанные теории, гипотезы 167 3
Я не знаю откуда это, но автор написал в посте про монеты.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
22.09.2020, 12:40
Цитата Сообщение от sodda Посмотреть сообщение
нет. это нашел одним действием.
Невозможно это одним действием действием.

(1+2+5+9+17+3)
Вы сначала перебрали все 6 чисел и убедились, что среди них нет 12.
Затем Вы начали перебирать все 15 пар чисел, складывать и сравнивать сумму с 12. Такая пара нашлась. Поэтому Вы не стали проверять все тройки чисел.
0
22.09.2020, 12:45

Не по теме:

"Лучшее средство от современных троллей - это не солнечный свет, как в Средиземье Толкина, а самое обычное игнорирование подобных людей, потому что разговора с ними все равно не получится."

0
Заблокирован
22.09.2020, 12:45
Цитата Сообщение от Shamil1 Посмотреть сообщение
Невозможно это одним действием действием.
вот же оно
21 - (1+2+5+9+17+3) = -16
Да, я глазами вижу, что если из этого ряда вычесть сумму чисел, которая равна 16 - 9+5+1 - то наберем 21 рупь без сдачи.
Я же говорю о необходимости найти способ понять, когда рзультат указывает на невозможность решения, а когда вот на такой вариант.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
22.09.2020, 13:23
Цитата Сообщение от sodda Посмотреть сообщение
я глазами вижу
Вы перебираете числа глазами. Тем не менее, перебор остаётся перебором. В данном случае числа расположены компактно, и Вы можете посмотреть сразу на все. К тому же, их мало, поэтому Вы можете все их запомнить. Если бы числа были расположены в книжке по одному на странице, то Вам бы пришлось перебрать (пролистать) все страницы. А если бы их было столько, сколько Вы не можете запомнить, то Вам бы пришлось перебирать несколько раз. Точное количество раз зависит от того, насколько быстро Вам повезёт подобрать нужную сумму (в данном случае - 16 или 21).
0
Заблокирован
22.09.2020, 13:27
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вы перебираете числа глазами. Тем не менее, перебор остаётся перебором. В данном случае числа расположены компактно, и Вы можете посмотреть сразу на все. К тому же, их мало, поэтому Вы можете все их запомнить. Если бы числа были расположены в книжке по одному на странице, то Вам бы пришлось перебрать (пролистать) все страницы. А если бы их было столько, сколько Вы не можете запомнить, то Вам бы пришлось перебирать несколько раз. Точное количество раз зависит от того, насколько быстро Вам повезёт подобрать нужную сумму (в данном случае - 16 или 21).
Вот поэтому я и говорю о необходимости поиска закономерностей и нахождения решения для конечных результатов в первую очередь.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
22.09.2020, 13:31
Цитата Сообщение от sodda Посмотреть сообщение
Вот поэтому я и говорю о необходимости поиска закономерностей и нахождения решения для конечных результатов в первую очередь.
В общем случае для NP задач закономерностей нет и искать их бесполезно. В частных случаях, имеющих практический смысл, закономерности уже найдены и опубликованы в виде полиномиальных алгоритмов.
0
Заблокирован
22.09.2020, 13:33
Цитата Сообщение от Shamil1 Посмотреть сообщение
В общем случае для NP задач закономерностей нет и искать их бесполезно. В частных случаях, имеющих практический смысл, закономерности уже найдены и опубликованы в виде полиномиальных алгоритмов.
Ну вот я вижу одну закономерность. Если среди слагаемых есть единица, то, скорее всего, ответ укажет на ту сумму, которую нужно вычесть из общей суммы, чтобы набрать без сдачи.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
22.09.2020, 15:08
Цитата Сообщение от sodda Посмотреть сообщение
Ну вот я вижу одну закономерность.
Это бессмысленно, пока не указаны формальные ограничения на входные данные.

Цитата Сообщение от sodda Посмотреть сообщение
Если среди слагаемых есть единица, то, скорее всего, ответ укажет на ту сумму, которую нужно вычесть из общей суммы, чтобы набрать без сдачи.
Неверно. Какую из задач проще решать - прямую (что выбрать) или обратную (что не выбирать) - зависит от соотношения суммы чисел, из которых набираем, и числа, которое нужно набрать.
0
0 / 0 / 0
Регистрация: 18.09.2020
Сообщений: 11
24.09.2020, 06:14  [ТС]
Я решил эту задачу тремя способами. Первый способ - самый простой, остальные два - трудные, над ними надо ещё поработать. На решение ушло около пяти часов. Решение занимает около пятнадцати строчек школьной страницы. Сейчас довожу до совершенства алгоритм на языке Паскаль и математические формулы с неизвестными. Задачу можно решить математически или на языке Паскаль. Первый способ - надёжный, но у него есть одно слабое место - это работа с большими числами, на которые возможно уйдёт чуть дольше времени, а может и нет, я не знаю, я тестировал задачу на небольших числах. Сначала я хотел использовать для этого супер быстрый компьютер, но это скорее было бы хитростью, чем выходом из положения. Мне всегда нравятся красивые решения, на которые можно смотреть часами - поэтому я изменил одну формулу и решение стало выполняться быстрее. При решении вторым способом результат получается мгновенно, независимо от величины суммы, но это в теории, надо ещё всё обдумать. У меня есть два вопроса: какая может быть самая большая сумма по условию задачи - миллион, миллиард, триллион и т.д.? Просто я не думаю, что кто-то будет работать с такими огромными числами, но я могу и ошибаться. И второй вопрос или проблема - это работа с большими числами, из-за которых может возникнуть нарушение закономерности внутри этих чисел (я это где-то слышал на лекции по математике) и тогда может возникнуть ошибка, но у меня пока не было никаких ошибок.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
24.09.2020, 06:26
Учили, но видимо впустую, что ты не знаешь - миллион или миллиард... Тебя учили, но ты не учился.
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
24.09.2020, 10:08
Цитата Сообщение от aleksey_konstr Посмотреть сообщение
Да, теперь я понял - если моя программа найдёт набор монет, которые в сумме будут давать нужное число и это будет сделано быстрее, чем человек успеет посчитать сумму этих монет, значит я смог решить эту задачу. Большое спасибо.
Нет, не поняли. и то и другое должна делать программа, человек ничего считать не должен.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
24.09.2020, 20:54
Ни программа, ни человек не должны ничего считать. Такое "доказательство" является спекулятивным, так как не охватит все произвольные наборы монет и сумм.

Нужно доказывать.
0
Заблокирован
24.09.2020, 21:42
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Нужно доказывать.
Знаете случай с замещением бесконечных плоскостей?
Математики раз 5 доказывали, все фигуры которыми можно равномерно замостить бесконечную плоскость известны.
Расчеты там, анализ - все серьезно.
Одна женщина - в прошлом тоже математик - все время опровергала это.
Известная история из области математики.
0
0 / 0 / 0
Регистрация: 18.09.2020
Сообщений: 11
24.09.2020, 21:56  [ТС]
Наверное я неправильно понял условие задачи, но моя программа работает и сама находит нужный набор монет для любой суммы. Это касается и математического доказательства с формулами и уравнениями.
0
 Аватар для LegionK
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
26.09.2020, 22:53

Не по теме:

дурка какая-то началась.



Добавлено через 2 минуты
Можно ли ваш код увидеть, Алексей? Или вы твердо намерены получить миллион долларов в одни руки?
0
0 / 0 / 0
Регистрация: 18.09.2020
Сообщений: 11
27.09.2020, 18:27  [ТС]
Я не могу показать вам решение этой задачи потому, что мне нужны деньги на мои научные проекты.
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
27.09.2020, 18:38
Цитата Сообщение от aleksey_konstr Посмотреть сообщение
научные проекты
чисто из любопытства, какое у Вас образование, какой ВУЗ закончили?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.09.2020, 18:38

Докажите равенство треугольников APD и AKB, и равенство углов BOP и BAD
BK и DP-высоты ромба ABCD, проведённые из вершин тупых углов соответственно на стороны AD и AB. Прямые BK и DP пересекаются в точке O....

Очень нужно подсчитать определитель на равенство/не равенство нулю
Здравствуйте. Мне очень нужно подсчитать данный определитель на равенство (или не равенство нулю), подскажите пожалуйста как мне его...

Задача: для целых значений I, J, K, L найдите N первых четверок чисел, чтобы выполнялось равенство: i^3-j^3=(k^2+l^2)^2
Никак не могу решить, потому что не подступиться к задаче. Программу вполне по силам написать, да только не представляю, с чего начинать...

Задача с применением классов
Здравствуйте! Из классов должна состоять прога. Надо чтобы было 2 класса, комплексных и дробей. в каждый класс должно входить 3 операции -...

Задача на использование классов
Добрый вечер форумчане! Мне задали написать программку, вот условие: Поля дaнных клаccа должны быть зaкрытыми, а доступ к ним должен...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru