Ю3.17

Задача: Сколько сомножителей надо взять в произведении: [latex]\prod_{k=1}^{\infty}{(1+\frac{{(-1)}^{k}}{2k+1})}=\frac{\sqrt{2}}{2}[/latex], чтобы равенство выполнялось до шестой значащей цифры, то есть с погрешностью не более [latex]{10}^{-6}[/latex]

Идея решения: Используем цикл for, в качестве [latex]k[/latex] в формуле используем переменную [latex]count[/latex] в программе. Переменную, которая будет соответствовать произведению, назовем [latex]mul[/latex] (сокращенно от multiplication) и присвоим ей значение 1 как нейтральный элемент для операции умножения. Каждую итерацию цикла проверяем разность [latex]mul-curr[/latex], где [latex]curr=\frac{\sqrt{2}}{2}[/latex], на превышение погрешности [latex]{10}^{-6}[/latex].

Если разность больше точности, умножаем [latex]mul[/latex] на выражение под знаком произведения и увеличиваем [latex]count[/latex] на единицу.

Если разность меньше точности, число [latex]count[/latex] и будет количеством сомножителей в произведении.

Число сомножителей оказалось достаточно большим — 88390. Ideone

3 thoughts on “Ю3.17

  1. Работает правильно. Засчитываю, чтобы снова не проверять. Но….
    — «Идея решение» либо через дефис, либо второе слово в родительном падеже.
    — 6-ю строку лучше записать как в условии. Т.е. у Вас правильно, но читатель должен сообразить, что это. Или напишите комментарий.
    — 7-я строка. Комментарий так и просится.
    — Пояснения очень хорошие, но «превосходство точности» это неточное употребление слова. Может лучше «превышение погрешности»?
    — Метки не очень удачные. «Погрешность, произведение, значащие цифры» — что-то такое нужно.
    — Если не хотите писать комментарии то строки 6-8 лучше объединить и вставить в инициализатор 10-й? Как то привычнее будет, чем с пустым инициализатором в цикле. Но комментарий ценнее для понимания.