КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример 1. Алгоритм Монте-Карло проверки числа на простоту
Алгоритмы Монте-Карло. В алгоритме Монте-Карло случайным образом выбираются некоторые значения и с этими значениями производятся вычисления. Алгоритмы Монте Карло всегда выдают какие-либо результаты, однако вероятность того, что результат правильный, возрастает при увеличении времени работы алгоритма. Иногда такие алгоритмы возвращают неправильные ответы. Алгоритм называется р-правильным, если он возвращает правильный ответ с вероятностью р (1/2 <р <1). Если число правильных ответов на данном входе превышает единицу, то алгоритм Монте-Карло называется стойким, если возвращаемый им правильный ответ всегда один и тот же. Результаты алгоритма Монте-Карло можно улучшить двумя способами. Во-первых, можно увеличить время его работы. Во-вторых, можно повторять его несколько раз. Вторая возможность реализуется только, если алгоритм стойкий. В этом случае алгоритм можно вызывать много раз и выбирать тот ответ, который встречается чаще всего. Задача проверки простоты числа - пример задачи, которую относили к классу NP. Лишь в 2002 г. был найден полиномиальный алгоритм и тем самым, доказано, что задача относится к классу Р. Тест Агравала — Каяла — Саксены (или тест AKS) — это полиномиальный детерминированный тест простоты чисел, предложенный индийскими учёным Маниндрой Агравалом (англ.) и его двумя студентам. Однако сложность предложенного алгоритма Задача факторизации натурального числа – разложения на простые множители является более сложной задачей. На настоящий момент неизвестны полиномиальные алгоритмы факторизации чисел, хотя и не доказано, что таких алгоритмов не существует. На сегодняшний момент задача относится к классу NP. На предполагаемой большой вычислительной сложности задачи факторизации базируется криптосистема RSA и некоторые другие. Факторизация с полиномиальной сложностью возможна на квантовом компьютере с помощью алгоритма Шора. Детерминированный алгоритм проверки числа на простоту (экспоненциальный): Выбираем все числа от 2 до begin; i:=2; j:= true; while (i*i < n and j) do if (n mod I =0) then j:= false else i:=i+1; if j then writeln («Это простое число») else writeln («Это составное число»); end; Время работы алгоритма Пример: для чисел Вероятностный метод Монте-Карло: В этом случае мы генерируем случайное число между 2 и Это не очень хороший алгоритм, потому что он возвращает отрицательны ответ слишком часто. Например, для числа 60 329, которое является произведением трех простых чисел 23, 43 и 61, алгоритм будет генерировать случайное число между 2 и 245, но только три числа из этого интервала привели бы к правильному результату. Вероятность успеха всего 1.2%. Хотя этот простой алгоритм работает и не очень хорошо, имеются аналогичные подходы к проверке простоты числа, основанные на той же идее и дающие большую вероятность правильного ответа. Для алгоритма, основанного на методе Монте-Карло, малой теореме Ферма и Китайской теореме об остатках справедлива: Теорема. Если Замечание. Чтобы получить полиномиальный вероятностный алгоритм проверки простоты числа, нужно дважды применить приведенный алгоритм, тогда вероятность ошибки будет меньше 1/4.
Дата добавления: 2014-01-03; Просмотров: 1672; Нарушение авторских прав?; Мы поможем в написании вашей работы! |