|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.12.2012, 17:43 | #1 |
Регистрация: 27.11.2012
Сообщений: 4
|
Вложенные циклы
Помогите пожалуйста, ни как не могу разобраться
|
13.12.2012, 11:03 | #2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Посмотрел. Не то чтобы совсем тривиально, но вполне решабельно.
Ваши мысли? |
14.12.2012, 03:34 | #3 |
Регистрация: 27.11.2012
Сообщений: 4
|
Я не могу разобраться с самой формулой, не имею понятия как это решается
|
14.12.2012, 09:35 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я долго-долго втыкал в формулу, пока не понял, что всё, что после первого значка суммы - это одно суммируемое выражение! (вторая сумма входит в суммируемое выражение)...
Цитата:
внутри ещё один, вложенный цикл вычисления внутренней суммы. Внутренне выражение вычисляется в цикле до тех пор, пока очередной элемент последовательности не станет меньше, чем точность. (для этого обязательно нужно, чтобы выражение сходилось, но я надеюсь, что об этом позаботились авторы задачи!) Тогда прерываем этот внутренний цикл (мы получили внутреннюю сумму). умножаем на 10 в степени (-i) и суммируем. после окончания внешнего цикла результат умножаете на 1.4. профит |
|
14.12.2012, 10:38 | #5 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Потому что иначе это не будет точность, а неизвестно что. |
|
14.12.2012, 11:00 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Abstraction, лично я не совсем понял...
можете пояснить (разжевать) на примере? |
14.12.2012, 11:21 | #7 |
Старожил
Регистрация: 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, которое в итоге даст сумму с точностью не ниже требуемой. |
14.12.2012, 11:46 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Abstraction, понятно, спасибо!
Хотя, я не думаю, что в данном случае преподаватель по программированию будет ожидать подобным математических выкладок (думаю, что "сдастся" программа, написанная "в лоб", особенно с учётом того, что внутренняя сумма в этой конкретной формуле делится на 10 в степени i). Но, тем не менее, я согласен в вашими выкладками: насчёт точности Вы правы! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вложенные циклы | 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 |