Форум программистов, компьютерный форум CyberForum.ru

вычислить значение выражения через цикл for - C++

Восстановить пароль Регистрация
 
KathrineY
 Аватар для KathrineY
1 / 1 / 0
Регистрация: 20.11.2012
Сообщений: 189
14.03.2013, 00:42     вычислить значение выражения через цикл for #1
вычислить значение выражения через цикл for
Изображения
 
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.03.2013, 00:51     вычислить значение выражения через цикл for #2
интересно...
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
14.03.2013, 01:05     вычислить значение выражения через цикл for #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cmath>
#include <iostream>
 
using namespace std;
 
int main()
{
    double x = sqrt(50);
    for (int i = 49; i >= 1; i--) {
        x = sqrt(i + x);
    }
    cout << x;
}
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.03.2013, 01:29     вычислить значение выражения через цикл for #4
ZoRT, вариант не верный, потаму, что вы вычисляете последовательность из корней квадратных
А если посмотреть на формулу, то каждый следующий член вложен в корень предыдущего, т.е. квдтаный корень имеет место быть только при значении = 1. Следующее значение уже не квадратный корень, а корень 4-й степени и т.д.
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
14.03.2013, 01:36     вычислить значение выражения через цикл for #5
Цитата Сообщение от xtorne21st Посмотреть сообщение
Следующее значение уже не квадратный корень, а корень 4-й степени
кто Вам такое сказал? он наглый лжец. решение в посте №3 верное
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.03.2013, 01:48     вычислить значение выражения через цикл for #6
Цитата Сообщение от Черный ворон Посмотреть сообщение
решение в посте №3 верное
Слабо верится

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <cmath>
 
int main()
{
    long double answer = 0;
 
    for (int i = 1, j = 2; i <= 50; ++i, j *= 2)
        answer += pow(i, (1/((long double)j)));
 
    std::cout << "Answer = " << answer << '\n';
 
    return 0;
}
но тут на при i = 32 значение становится равным inf, что это значит ума не приложу...
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
14.03.2013, 01:56     вычислить значение выражения через цикл for #7
xtorne21st, что ж. если вы не желаете обращать внимание, на то что там сумма слагаемых под корнем (а правила раскладывания корня суммы на сумму корней не существует как такового), то я могу вам доказать верность ответа №3 минут через 10-15 с помощью основ функционального анализа) и inf это бесконечность
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.03.2013, 02:24     вычислить значение выражения через цикл for #8
Цитата Сообщение от Черный ворон Посмотреть сообщение
inf это бесконечность
За inf спасибо, конечно (поверю на слово). Но вот по поводу поста 3 есть определённые сомнения...
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
14.03.2013, 02:38     вычислить значение выражения через цикл for #9
xtorne21st, http://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{1}=\sqrt{50}{x}_{2}=\sqrt{\sqrt{50}+49}


http://www.cyberforum.ru/cgi-bin/latex.cgi?49=50-n+1
http://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{n}=\sqrt{{x}_{n-1}+51-n}

введем вспомогательную функцию

http://www.cyberforum.ru/cgi-bin/latex.cgi?f(y)=\sqrt{51-n+y}

и рассмотрим ее на отрезке http://www.cyberforum.ru/cgi-bin/latex.cgi?[1; +\inf)

http://www.cyberforum.ru/cgi-bin/latex.cgi?\left|f'(y) \right|=\left|\frac{1}{\sqrt{51-n+y}} \right| < 1

супремум функции на этом отрезке меньше 1 следовательно можно использовать принцип сжимающих отображений

http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{51-n+y}=y51-n+y={y}^{2}
http://www.cyberforum.ru/cgi-bin/latex.cgi?{y}^{2}-y+n-51=0
http://www.cyberforum.ru/cgi-bin/latex.cgi?D=1-4*(n-51)=205-4*n
http://www.cyberforum.ru/cgi-bin/latex.cgi?{y}_{1}=\frac{1-\sqrt{205-4*n}}{2}

n равно 50 это решение не попадает в выбранный мною отрезок

http://www.cyberforum.ru/cgi-bin/latex.cgi?{y}_{2}=\frac{1+\sqrt{205-4*n}}{2}=\frac{1+\sqrt{205-200}}{2}=1.61

это решение попадает в отрезок.

таким образом я получил приблизительное значение предела последовательности (как неподвижную точку).

разница между пределом последовательности и значением вычисленном в цикле составляет примерно 0,15 (за счет того, что от нас требуется только 50 членов, а не вся последовательность)

так что решение из поста №3 все-таки верно и подтверждается теорией=)
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.03.2013, 03:29     вычислить значение выражения через цикл for #10
Цитата Сообщение от Черный ворон Посмотреть сообщение
супремум функции на этом отрезке меньше 1 следовательно можно использовать принцип сжимающих отображений
Это вообще зачётная фраза... сразу всё становится ясно
Плохого вы нашли собеседника в области функционального анализа, но за старания и попыткой поделится своими домыслами +
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
14.03.2013, 16:30     вычислить значение выражения через цикл for #11
xtorne21st, странный вы...
Цитата Сообщение от xtorne21st Посмотреть сообщение
вы вычисляете последовательность из корней квадратных
x = sqrt(i + x), где x - квадратный корень из какого-то числа, где тоже есть x, который является квадратным корнем, который является .... и что мы получаем?
Цитата Сообщение от xtorne21st Посмотреть сообщение
каждый следующий член вложен в корень предыдущего
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2013, 20:28     вычислить значение выражения через цикл for
Еще ссылки по теме:

C++ Вычисление выражения через цикл for
C++ Используя один цикл, найти значение выражения
C++ Вычислить значение выражения

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
12.04.2013, 20:28     вычислить значение выражения через цикл for #12
интересно, как можно решить эту задачу рекурсивно?

Добавлено через 1 час 0 минут
Нашёл вариант в соседней ветки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double recFoo(int i, int j)
{
       if (i == j)
       {
           return sqrt(j);
       }
 
       return sqrt(j + recFoo(i, j+1));
}
 
double Foo(int n)
{
       return recFoo(n, 1);
}
Yandex
Объявления
12.04.2013, 20:28     вычислить значение выражения через цикл for
Ответ Создать тему
Опции темы

Текущее время: 05:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru