Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2012, 17:43   #1
kandrash
 
Регистрация: 27.11.2012
Сообщений: 4
По умолчанию Вложенные циклы

Помогите пожалуйста, ни как не могу разобраться
Изображения
Тип файла: bmp м.bmp (45.1 Кб, 161 просмотров)
kandrash вне форума Ответить с цитированием
Старый 13.12.2012, 11:03   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Посмотрел. Не то чтобы совсем тривиально, но вполне решабельно.
Ваши мысли?
Abstraction вне форума Ответить с цитированием
Старый 14.12.2012, 03:34   #3
kandrash
 
Регистрация: 27.11.2012
Сообщений: 4
По умолчанию

Я не могу разобраться с самой формулой, не имею понятия как это решается
kandrash вне форума Ответить с цитированием
Старый 14.12.2012, 09:35   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я долго-долго втыкал в формулу, пока не понял, что всё, что после первого значка суммы - это одно суммируемое выражение! (вторая сумма входит в суммируемое выражение)...

Цитата:
не имею понятия как это решается
два цикла. внешний от 1 до 8
внутри ещё один, вложенный цикл вычисления внутренней суммы. Внутренне выражение вычисляется в цикле до тех пор, пока очередной элемент последовательности не станет меньше, чем точность. (для этого обязательно нужно, чтобы выражение сходилось, но я надеюсь, что об этом позаботились авторы задачи!)
Тогда прерываем этот внутренний цикл (мы получили внутреннюю сумму). умножаем на 10 в степени (-i) и суммируем.
после окончания внешнего цикла результат умножаете на 1.4.

профит
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.12.2012, 10:38   #5
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Внутренне выражение вычисляется в цикле до тех пор, пока очередной элемент последовательности не станет меньше, чем точность.
Нет, нет и нет. До тех пор, пока сумма хвоста не станет меньше такой, что при суммировании внешней суммы отброшенное окажется заведомо меньше точности по модулю. Для чего её предварительно надо оценить сверху и прикинуть стратегию отбрасывания при разных i.
Потому что иначе это не будет точность, а неизвестно что.
Abstraction вне форума Ответить с цитированием
Старый 14.12.2012, 11:00   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Abstraction, лично я не совсем понял...
можете пояснить (разжевать) на примере?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.12.2012, 11:21   #7
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Пусть у нас есть сумма Sum_{0<=i<8} (2^i * Sum_{j>0} (i/(j*(j+1))) ). Пусть погрешность равна 1.
Тогда, по Вашей методике мы, во-первых, внутреннюю сумму будем складывать до очередного слагаемого меньше 1: при i=7, это 7/2+7/6+7/12=5.25. Но полная сумма до бесконечности, как можно посчитать - 7, итоговая погрешность внутренней суммы 1.75>1.
А во-вторых, даже если внутреннюю сумму в каждом случае мы посчитали с погрешностью менее 1 (скажем, 1/2), это даст итоговую погрешность 1/2+2*1/2+4*1/2+...+128*1/2 = 127. Несколько больше 1, не правда ли?
Вариант рассуждения, для моего примера: общая погрешность не больше 1, во внешней сумме 8 слагаемых, для каждого погрешность - не более 1/8. Следовательно, внутренняя сумма для некоторого i должна считаться с точностью 1/2^(i+3). Хвост суммы, начиная с некоторого j0, не превышает i/j0. Отсюда, j0>=i*2^(i+3). Вот наше ограничение на суммирование по j при каждом конкретном i, которое в итоге даст сумму с точностью не ниже требуемой.
Abstraction вне форума Ответить с цитированием
Старый 14.12.2012, 11:46   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Abstraction, понятно, спасибо!

Хотя, я не думаю, что в данном случае преподаватель по программированию будет ожидать подобным математических выкладок (думаю, что "сдастся" программа, написанная "в лоб", особенно с учётом того, что внутренняя сумма в этой конкретной формуле делится на 10 в степени i).

Но, тем не менее, я согласен в вашими выкладками: насчёт точности Вы правы!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вложенные циклы DeadWind Паскаль, Turbo Pascal, PascalABC.NET 2 27.12.2011 13:50
Вложенные циклы voron86618 Паскаль, Turbo Pascal, PascalABC.NET 1 26.12.2011 18:55
вложенные циклы. pyzhov Помощь студентам 1 12.12.2010 18:04
Вложенные циклы. Arctopus Помощь студентам 11 20.02.2010 00:02