Хз, что не так, проблема в математике или в проге.

avatar OziePozie

404

20

OziePozie

Пользователь

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

OziePozie

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

img

Есть вообщем формула и ее надо рассчитать в одном случае, зная кол-во слагаемых, во втором зная погрешность. https://imgur.com/a/fcd7Nu2

KuVik

Пользователь

Регистрация: 29.05.2015

Сообщения: 517

Рейтинг: 504

KuVik

Регистрация: 29.05.2015

Сообщения: 517

Рейтинг: 504

Что не так? Не знаешь как формулу встроить или что?

OziePozie

Пользователь

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

OziePozie

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

img
KuVik сказал(а):

Что не так? Не знаешь как формулу встроить или что?

Нажмите, чтобы раскрыть...

Я не понимаю, что я мог написать не так, нужен так сказать, свежий взгляд, потому что я перепроверял уже кучу раз, но ошибку так и не нашел. Я не знаю, правильно ли я составил формулу коэффициента реккурентного соотношения, мб ошибка в ней.

KuVik

Пользователь

Регистрация: 29.05.2015

Сообщения: 517

Рейтинг: 504

KuVik

Регистрация: 29.05.2015

Сообщения: 517

Рейтинг: 504

OziePozie сказал(а):

Я не знаю, правильно ли я составил формулу коэффициента реккурентного соотношения, мб ошибка в ней.

Нажмите, чтобы раскрыть...

Смотрю на твой код и формулу. Там же вообще ничего общего. Как это должно было работать?

OziePozie

Пользователь

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

OziePozie

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

img
KuVik сказал(а):

Смотрю на твой код и формулу. Там же вообще ничего общего. Как это должно было работать?

Нажмите, чтобы раскрыть...

То что в "с" это коэффициент реккурентного соотношения, зная первый элемент ряда, мы каждый следующий умножаем на предыдущий и этот коэф. и находим сумму. Ну, оно должно так рабоать впринципе.

Sudjiro

Пользователь

Регистрация: 17.12.2011

Сообщения: 18571

Рейтинг: 6282

Sudjiro

Регистрация: 17.12.2011

Сообщения: 18571

Рейтинг: 6282

хорошо, что я просто js-прогер. Чтоб это решить, нужно понимать в матане хоть что-то

OziePozie сказал(а):

То что в "с" это коэффициент реккурентного соотношения, зная первый элемент ряда, мы каждый следующий умножаем на предыдущий и этот коэф. и находим сумму. Ну, оно должно так рабоать впринципе.

Нажмите, чтобы раскрыть...

скинь формулу, я тебе на джесе сделаю, а ты переведешь в си

ScienceT

Пользователь

Регистрация: 17.05.2019

Сообщения: 146

Рейтинг: 36

ScienceT

Регистрация: 17.05.2019

Сообщения: 146

Рейтинг: 36

OziePozie сказал(а):

Я не понимаю, что я мог написать не так.

Нажмите, чтобы раскрыть...

Так где конкретно ошибка или что-то другое? Всё считает правильно.

OziePozie

Пользователь

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

OziePozie

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

img
Sudjiro сказал(а):

 

 

скинь формулу, я тебе на джесе сделаю, а ты переведешь в си

Нажмите, чтобы раскрыть...

Формулу как код или текст ?

ScienceT сказал(а):

Так где конкретно ошибка или что-то другое? Всё считает правильно.

Нажмите, чтобы раскрыть...

Ответы не равны. 

Sudjiro

Пользователь

Регистрация: 17.12.2011

Сообщения: 18571

Рейтинг: 6282

Sudjiro

Регистрация: 17.12.2011

Сообщения: 18571

Рейтинг: 6282

OziePozie сказал(а):

Формулу как код или текст ?

Нажмите, чтобы раскрыть...

и то и то лучше, чтоб я понимал что происходит вообще

OziePozie

Пользователь

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

OziePozie

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

img
Sudjiro сказал(а):

и то и то лучше, чтоб я понимал что происходит вообще

Нажмите, чтобы раскрыть...
Спойлер: "Формула код"

Double k, n, c, m, y;

m = 1;

c = 1;

Double z = 0;

n = Double.Parse(textBox1.Text);

for (k = 1; k <= n; k++)

{

m *= k;

c = (c + 1)*c;

y = (Math.Pow(k, k) * k) / (m * c);

z += y;

m и c это факториалы k! и (k+1)! соот-но

Спойлер: "Формула текст"

Сумма((k^k+1))/k!*(k+1)!

}

Sudjiro

Пользователь

Регистрация: 17.12.2011

Сообщения: 18571

Рейтинг: 6282

Sudjiro

Регистрация: 17.12.2011

Сообщения: 18571

Рейтинг: 6282

OziePozie сказал(а):
Спойлер: "Формула код"

Double k, n, c, m, y;

m = 1;

c = 1;

Double z = 0;

n = Double.Parse(textBox1.Text);

for (k = 1; k <= n; k++)

{

m *= k;

c = (c + 1)*c;

y = (Math.Pow(k, k) * k) / (m * c);

z += y;

m и c это факториалы k! и (k+1)! соот-но

Спойлер: "Формула текст"

Сумма((k^k+1))/k!*(k+1)!

}

Нажмите, чтобы раскрыть...
Спойлер:

 вот эта формула?

OziePozie

Пользователь

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

OziePozie

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

img
Sudjiro сказал(а):
Спойлер:

 вот эта формула?

Нажмите, чтобы раскрыть...

да

 

KuVik

Пользователь

Регистрация: 29.05.2015

Сообщения: 517

Рейтинг: 504

KuVik

Регистрация: 29.05.2015

Сообщения: 517

Рейтинг: 504

OziePozie сказал(а):

Ответы не равны. 

Нажмите, чтобы раскрыть...

Попробуй в цикле "с = (с + 1) * с" поменять на "с = (k + 1) * с"

ScienceT

Пользователь

Регистрация: 17.05.2019

Сообщения: 146

Рейтинг: 36

ScienceT

Регистрация: 17.05.2019

Сообщения: 146

Рейтинг: 36

OziePozie сказал(а):

Ответы не равны. 

Нажмите, чтобы раскрыть...

Какие вы ответы сравниваете? И почему у меня они равны?

Sum(n=0 to 8) of n^(n+1)/(n!*(n+1)!) =

0 + 0.5 + 0.6666666666666666 + 0.5625 + 0.35555555555555557 + 0.1808449074074074 + 0.07714285714285714 + 0.028368296682098764 + 0.00917331541670166 = 2.380251598871287

 

Output:

Sum =  0.5 a =  0.5                                                                                                                           
Sum =  1.1666666666666665 a =  0.6666666666666666                                                                                             
Sum =  1.7291666666666665 a =  0.5625                                                                                                         
Sum =  2.084722222222222 a =  0.35555555555555557                                                                                             
Sum =  2.2655671296296296 a =  0.18084490740740744                                                                                            
Sum =  2.3427099867724865 a =  0.07714285714285717                                                                                            
Sum =  2.3710782834545854 a =  0.028368296682098774                                                                                           
Sum =  2.380251598871287 a =  0.009173315416701664

OziePozie

Пользователь

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

OziePozie

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

img
ScienceT сказал(а):

Какие вы ответы сравниваете? И почему у меня они равны?

Sum(n=0 to 8) of n^(n+1)/(n!*(n+1)!) =

0 + 0.5 + 0.6666666666666666 + 0.5625 + 0.35555555555555557 + 0.1808449074074074 + 0.07714285714285714 + 0.028368296682098764 + 0.00917331541670166 = 2.380251598871287

 

Output:

Sum =  0.5 a =  0.5                                                                                                                           
Sum =  1.1666666666666665 a =  0.6666666666666666                                                                                             
Sum =  1.7291666666666665 a =  0.5625                                                                                                         
Sum =  2.084722222222222 a =  0.35555555555555557                                                                                             
Sum =  2.2655671296296296 a =  0.18084490740740744                                                                                            
Sum =  2.3427099867724865 a =  0.07714285714285717                                                                                            
Sum =  2.3710782834545854 a =  0.028368296682098774                                                                                           
Sum =  2.380251598871287 a =  0.009173315416701664
Нажмите, чтобы раскрыть...

Ответы при равном кол-ве слагаемых и в первом случае у меня также получается 2,38, видимо все таки в формуле с погршностью что-то не то. Спасибо, хотя бы знаю в чем ошибка

Sudjiro

Пользователь

Регистрация: 17.12.2011

Сообщения: 18571

Рейтинг: 6282

Sudjiro

Регистрация: 17.12.2011

Сообщения: 18571

Рейтинг: 6282

OziePozie сказал(а):

да

 

Нажмите, чтобы раскрыть...

дак там просто нужно сделать функцию факториала, сделать цикл, и подставлять все значения. Зачем столько переменных??

3 переменные: k, n и сумма, и ещё одна для счетчика в цикле.

 

С погрешностью не понял чет, забыл всё

kotyra

Пользователь

Регистрация: 22.09.2013

Сообщения: 2009

Рейтинг: 613

kotyra

Регистрация: 22.09.2013

Сообщения: 2009

Рейтинг: 613

OziePozie сказал(а):

Есть вообщем формула и ее надо рассчитать в одном случае, зная кол-во слагаемых, во втором зная погрешность. https://imgur.com/a/fcd7Nu2

Нажмите, чтобы раскрыть...

Как-то в вузе делал Лабу по РС. Я бы помог, но до конца так и не понял как оно работает(((

OziePozie

Пользователь

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

OziePozie

Регистрация: 10.08.2019

Сообщения: 182

Рейтинг: 60

img
Sudjiro сказал(а):

дак там просто нужно сделать функцию факториала, сделать цикл, и подставлять все значения. Зачем столько переменных??

3 переменные: k, n и сумма, и ещё одна для счетчика в цикле.

 

С погрешностью не понял чет, забыл всё

Нажмите, чтобы раскрыть...

Я начинал делать через функцию, но там какие-то ошибки начало выдавать, так как я только новичок в сишарпе-забил и сделал просто в лоб. 

Sudjiro

Пользователь

Регистрация: 17.12.2011

Сообщения: 18571

Рейтинг: 6282

Sudjiro

Регистрация: 17.12.2011

Сообщения: 18571

Рейтинг: 6282

OziePozie сказал(а):

Я начинал делать через функцию, но там какие-то ошибки начало выдавать, так как я только новичок в сишарпе-забил и сделал просто в лоб. 

Нажмите, чтобы раскрыть...

скажи, если не сделал, вспомню молодость хоть

white_dog

Пользователь

Регистрация: 29.08.2019

Сообщения: 1697

Рейтинг: 38

Нарушения: 110

white_dog

Регистрация: 29.08.2019

Сообщения: 1697

Рейтинг: 38

Нарушения: 110

OziePozie сказал(а):

Есть вообщем формула и ее надо рассчитать в одном случае, зная кол-во слагаемых, во втором зная погрешность. https://imgur.com/a/fcd7Nu2

Нажмите, чтобы раскрыть...

https://pastebin.com/

https://bitbucket.org/

https://archive.codeplex.com/

https://sourceforge.net/

https://about.gitlab.com/

https://codeshare.io/

 

saw_tooth

Пользователь

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

saw_tooth

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

OziePozie сказал(а):

да

Нажмите, чтобы раскрыть...

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

Спойлер: "course"

// Type your code here, or load an example.

#include

#include

double iter(int step) {

if (step >= 0)

{

return iter(step-1) + (pow(step, step +1) / (tgamma(step+1) * (tgamma(step + 2))));

}

return pow(step, step +1) / (tgamma(step+1) * (tgamma(step + 2)));

}

int main(){int start = 3;double result = iter(start);std::cout << "res: " << result;}