Пояснение\указание

Mar 28, 2018 12:02

к менее типичной задаче.

Очевидно, я недостаточно внятно сформулировал задачу, в результате ряд уважаемых читателей решили, что основная проблема - это оценка остатка и увлеченно принялись эту оценку искать. Сам по себе, поиск такой оценки  - дело интересное, но в рамках исходной задачи не самое важное.

Суть в том, что ряд, который я вам предложил, "в лоб" с требуемой точностью не суммируется. (Уважаемый son_0f_morning меня убедительно опроверг, сумев уложиться в лимит времени суммируя исходный ряд. Снимаю шляпу, посыпаю голову пеплом.) Изучив его код, я понял, что с пеплом поторопился. Идея воплощена годная, но это очень сильно не "в лоб".
А чтобы вы свою жизнь не тратили на эти обреченные попытки, установлен жесткий лимит времени (напомню, если ваша программа считает дольше 10 секунд, значит задача не решена \надо было ставить 100 мс\). И вот найти выход, извернуться и просуммировать, таки, ряд, вот в этом суть.

Для облегчения жизни присутствующих, под катом выложены результаты моих расчетов. Абсолютная погрешность заведомо не более 1e-14, так что сравнивайте со своими расчетами смело, не заморачиваясь оценками хвостов. Суть не в хвостах.


1.6449340668482264
1.5346072449045607
1.4408788415467229
1.360082586782444
1.2895778007910417
1.2274112777602189
1.1721051961250153
1.1225193425357527
1.0777588727442429
1.0371109178506583
0.99999999999999989

Время счета моей (изрядно продвинутой) современной версии составило в один поток около 3 миллисекунд (на самом деле около 8 микросекунд, если не включать время работы потока вывода). Но даже то, что я в 2002 году написал на Турбо Паскале, в лимит времени укладывалось. Дерзайте.

И еще. Имейте в виду. Использование всевозможных констант при расчете вполне кошерно. А вот если вы используете формулы, в которых выражение, содержащее аргумент Х, попадает под действие трансцендентной функции (особенно такой нетривиальной, как дигамма), то значит вы жульничаете, перекладывая задачу суммирования ряда на плечи автора математической библиотеки.

математика, численные методы, задачка, программирование

Previous post Next post
Up