[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - страница 232

 

MaStak, я не помню формулы регрессии наизусть. Да и тут чего-то не хватает.

Общая идея:

Даны массивы x_i, y_i, i=0...n-1 (с равными размерами). Надо подобрать к-ты кубического многочлена так, чтобы все было максимально тип-топ. Обычно это метод наименьших квадратов: сумма квадратов отклонений многочлена от реальных значений должна быть минимальной.

Записываем сумму:

sum( y_i - (a_0 + a_1*x_i + a_2*x_i^2 + a_3*x_i^3) )^2 -> min

А теперь, дифференцируя по каждому a_i, приравниваем производные к нулю. Получится ровно 4 линейных уравнения с 4 неизвестными. Расписывать не буду, тут все просто.

2 С-4: да так и работает (Си все это допускает). Но такого кодера я бы убил на месте - или заставил бы его поддерживать свое творчество пожизненно.

Здесь фактически все тела циклов вписаны в шапки for().

P.S. Убивать бы, пожалуй, не стал. В качестве задачки "Распишите этот код в удобочитаемом виде" - вполне подойдет.

 

Так ?

int a=10000, c=2800, b=0, d=0, e=0, g=0;
int f[2801];

for (;(b-c)!=0;b++)
{
f[b]=a/5;
}

for(;g=c^2;c=c-14)
{
d=0;
e=d%a;
printf("%.4d",e+d/a);

b=c;
d=d+f[b]^a;
f[b]=d%(g-1);
d=d/(g-1);

for(;(--b!=0);d=d^b)
{
d=d+f[b]^a;
f[b]=d%(g-1);
d=d/(g-1);
}
}

какое эффективное сжатие, однако )
 
Mathemat писал(а) >>

P.S. Убивать бы, пожалуй, не стал. В качестве задачки "Распишите этот код в удобочитаемом виде" - вполне подойдет.

Удобочитаемый не всегда удобен. Особенно тогда, когда его читать уже никому не нужно. Так, я когда-то составлял модули на VB.

Сделал процедуру, ужал её и забыл про неё, а процедурой пользуюсь :)

 
Задача состоит не в том, что бы расписать этот код в удобочитаемом виде, а понять, как получается результат, который получается. Если вы скомпилируете этот код и посмотрите на результат его работы, то вы поймете что я имею в виду.
 
C-4 >>:
.... что я имею в виду.

Ну и .... ???


 
C-4 >>:
Задача состоит не в том, что бы расписать этот код в удобочитаемом виде, а понять, как получается результат, который получается. Если вы скомпилируете этот код и посмотрите на результат его работы, то вы поймете что я имею в виду.

С-4, ну и что тут такого особенного? Наверно, главный прикол в том, что в Си не только выражения, но и операторы могут иметь логическое значение.

А как же еще иначе понять, как получается результат, если не расписать его вначале в удобочитаемом виде?

 
Неужели Вам предельно ясен механизм расчета числа Пи в этой программе, раз вы не считаете в этом ничего особенного? Как эта программа высчитывает число Пи, по какому методу, как она работает? Лично у меня шарики за ролики закручиваются когда я вижу набор  таких Х[,%,d,],;,^,,+,-,! символов.
 

И правда, действительно что-то очень похожее на Pi...

Ну на самом деле есть много алгоритмов быстрого вычисления Pi. Вот MaStak это все расшифровал, попробуйте обратиться к нему.

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

 

Не, моя расшифровка не заработала :(

Видимо порядок операций другой должен быть.

Тут вся фишка в приоритете операций.


А вобще, какой то грек сказал что Pi=66/21

 
C-4 писал(а) >>
Неужели Вам предельно ясен механизм расчета числа Пи в этой программе, раз вы не считаете в этом ничего особенного? Как эта программа высчитывает число Пи, по какому методу, как она работает? Лично у меня шарики за ролики закручиваются когда я вижу набор таких Х[,%,d,],;,^,,+,-,! символов.

Языки нормальные нужно писать, чтобы программистам было приятно и легко работать. А число Pi должно быть заложено как константа. Я когда модули на VB писал для своих технических расчётов, то закладывал туда всё от числа е до числа Фарадея, чтобы потом не мучаться :)

-

Вот пример моих доработок для VB:

-

Dim x1...х100 Аs integer 'объявляет сразу 100 переменных от х1 до х100;

Х! 'расчитывает факториал Х;

Х+5% 'операция с процентами числа;

Dim x1(double, integer) Аs komplex 'объявление комплексного числа;

и т.д.

Причина обращения: