Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
0 / 0 / 2
Регистрация: 18.09.2010
Сообщений: 52
1

Факториал

22.09.2010, 18:15. Показов 5461. Ответов 36
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите написать программу:
Составить функцию, которая вычисляет сумму К слагаемых. В вызывающей функции main() организовать контроль ввода положительного целого K, большего 0. Через do... while или while или for
--------------
В знаменателе 2n-1, а что делать со степенью x и меняющимися знаками??
Изображения
 
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2010, 18:15
Ответы с готовыми решениями:

Описать рекурсивные функции вещественного типа, вычисляющие факториал и двойной факториал заданного числа
Описать рекурсивные функции Fact(N) и Fact2(N) вещественного типа, вычисляющие значения факториала...

факториал в С++
Как найти факториал с помощью рекурсивной функции?

Факториал
Пользователь вводит число и программа считает его факториал. Например 5! = 5*4*3*2*1 = 120. кто не...

Факториал
помогите написать прогу факториала в С++ с помощью циклов. Мне нужна простая прога а не на пол...

36
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.09.2010, 22:57 21
Author24 — интернет-сервис помощи студентам
Так получается, нужна действительно рекуррентная, а не рекурсивная формула... Потому что я действительно не могу понять, как тут построить рекурсивную функцию... Или, может, тупею)))

Не по теме:

KuKu,
Рад, что мы пришли к соглашению)))

0
0 / 0 / 2
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 08:40  [ТС] 22
silent_1991, я тоже не понимаю, она тригонометрическая, а в задаче этого не сказано плюс там X в степени меняется строго с шагом = 2
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
01.10.2010, 13:22 23
MarchZM,
Вопрос номер раз: Кто тригонометрический?
Вопрос номер два раза: Чего не сказано в задаче?
Вопрос номер три раза: Что значит икс в степени меняется строго с шагом два? Степень меняется не с шагом два. А икс вообще фиксированный и задаётся с клавиатуры.
В общем, ваш пост вызывает у меня сплошные вопросы...
0
0 / 0 / 2
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 15:30  [ТС] 24
silent_1991, я про реккурентную формулу, не про задание =)
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
01.10.2010, 15:53 25
Рекуррентная формула не обязана быть тригонометрической, и в ней не обязан меняться икс. Рекуррентная формула, это такая формула, которая позволяет вычислить очередной член ряда на основе уже вычисленных предыдущих.
0
0 / 0 / 2
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 15:59  [ТС] 26
http://twcad.ifmo.ru/?rub=riad не знаю вот отсюда я понял про неё, подойдёт ли она для моего задания?
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
01.10.2010, 16:00 27
По ссылке - пример, как найти рекуррентную формулу на основе заданного ряда. Вам нужно искать свою формулу, так как ряд у вас, естественно, другой.
0
0 / 0 / 2
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 16:07  [ТС] 28
лучшее что я нашёл это ряд Тейлора, но там степени меняются с определённым шагом, и знаки постоянно чередуются, а у меня не так...
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
01.10.2010, 16:23 29
Я бы предложил группировать слагаемые парами. Первая пара - первый член ряда, вторая пара - второй член и т.д. Тогда и шаг степени будет постоянен, и знаки будут постоянно чередоваться.
0
0 / 0 / 2
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 16:26  [ТС] 30
тогда опять две функции будет? может быть препод ошибся? мне кажется не получиться решить через рекуррентную формулу...
0
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
01.10.2010, 19:39 31
MarchZM, а чем не понравилось соотношение в моем предыдущем посте ?)
0
0 / 0 / 2
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 19:53  [ТС] 32
KuKu, ну она настаивала именно на рекуррентной формуле, про факториал она даже не говорила...
0
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
01.10.2010, 20:02 33
ммм ... а что вы имеете ввиду под рекуррентной формуле ?) По мне так это последующий член выражается через предыдущие, и не имеет разницы, что выражать - факториал или что то еще. Напиши пример, что хочешь увидеть.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
01.10.2010, 20:38 34
KuKu,
ИМХО, человек сам не знает, чего хочет.

MarchZM,
Вы или уточните у преподавателя, чего ему от вас надо, или уточните у себя, что вы подразумеваете под рекуррентной формулой... А потом уж к нам.
0
0 / 0 / 2
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 23:09  [ТС] 35
в общем, она мне сказала что эта прога решается через рекуррентность. с этим понятием никогда не сталкивался, в нете всё перерыл, не знаю что делать
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
02.10.2010, 06:33 36
MarchZM, рекуррентная формула, с примерами, все ясно расписано

Цитата Сообщение от MarchZM Посмотреть сообщение
в общем, она мне сказала что эта прога решается через рекуррентность
я думаю, здесь она имела в виду, что для вычисления факториала числа n не нужно перемножать все натуральные числа от 1 до n, а использовать вычисленное на предыдущем шаге значение (n - 2)!, таким образом, n! = n * (n - 1) * (n - 2)!.
Посмотри внимательно, у тебя сначала вычисляется 1!, потом 3!, потом 5! и т.д. Можно считать знаменатели так:
Код
1! = 1
3! = 1 * 2 * 3
5! = 1 * 2 * 3 * 4 * 5
.............................
(2n + 1)! = 1 * 2 * 3 * ... * 2n * (2n + 1)
А можно просто сохранять предыдущий знаменатель и на его основе вычислять новый (кстати, то же самое хорошо бы сделать и с вычислением числителя). Алгоритм:
C++
1
2
3
4
5
6
7
8
9
10
int last_denom = 1;
int i = 1;
for(int j = 1; j <= k; i = j, j+=2)
{
    int denom = last_denom;
    for(int t = i + 1; t <= j; ++t)
        denom *= t;
    //...
    last_denom = denom;
}
Сравни, какой из вариантов эффективнее, и поймешь, почему преподаватель требует от тебя именно "через рекуррентность". Так что выносить вычисление факториала в отдельную процедуру нет смысла.
PS. Все тему не читал, так что извиняюсь, если повторил чей-то пост
0
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 41
02.11.2012, 14:24 37
мне училка задала такой вопрос
вводишь K=2,X=2
потом K=3 X=2
потом K=4 X=2
почему когда вводишь k=4 ответ меньше чем когда ты вводишь k=3?
0
02.11.2012, 14:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2012, 14:24
Помогаю со студенческими работами здесь

факториал
Задача: написать 3 функции, считающие факториал неотрицательного целого числа от 0 до 170 3...

Факториал с++
1. Ввести n элементов одномерного массива; 2. Вычислить указанное выражение; 3. Вывести на...

Факториал
Дано натуральное число n; найти n!. Использовать программу, включающую рекурсивную процедуру...

Факториал
Задано целое положительное число n. Определить значение выражения: ...


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru