Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Алгоротм. Формулу в цикл. [D7, XP]


kirat ©   (2013-03-15 15:50:00) 

Здравствуйте!
Подскажите как мне вогнать вот это в цикл!

SUMA[1] :=
            (Result[2]*(Matrix[3]/Koofic[2]))*Roz[4]+
            (Result[2]*(Matrix[4]/Koofic[2]))*Roz[3]+
            (Result[3]*(Matrix[2]/Koofic[3]))*Roz[4]+
            (Result[3]*(Matrix[4]/Koofic[3]))*Roz[2]+
            (Result[4]*(Matrix[2]/Koofic[4]))*Roz[3]+
            (Result[4]*(Matrix[3]/Koofic[4]))*Roz[2];
SUMA[2] :=
            (Result[1]*(Matrix[3]/Koofic[1]))*Roz[4]+
            (Result[1]*(Matrix[4]/Koofic[1]))*Roz[3]+
            (Result[3]*(Matrix[1]/Koofic[3]))*Roz[4]+
            (Result[3]*(Matrix[4]/Koofic[3]))*Roz[1]+
            (Result[4]*(Matrix[1]/Koofic[4]))*Roz[3]+
            (Result[4]*(Matrix[3]/Koofic[4]))*Roz[1];
SUMA[3] :=
            (Result[2]*(Matrix[1]/Koofic[2]))*Roz[4]+
            (Result[2]*(Matrix[4]/Koofic[2]))*Roz[1]+
            (Result[1]*(Matrix[2]/Koofic[1]))*Roz[4]+
            (Result[1]*(Matrix[4]/Koofic[1]))*Roz[2]+
            (Result[4]*(Matrix[2]/Koofic[4]))*Roz[1]+
            (Result[4]*(Matrix[1]/Koofic[4]))*Roz[2];
SUMA[4] :=
            (Result[2]*(Matrix[3]/Koofic[2]))*Roz[1]+
            (Result[2]*(Matrix[1]/Koofic[2]))*Roz[3]+
            (Result[3]*(Matrix[2]/Koofic[3]))*Roz[1]+
            (Result[3]*(Matrix[1]/Koofic[3]))*Roz[2]+
            (Result[1]*(Matrix[2]/Koofic[1]))*Roz[3]+
            (Result[1]*(Matrix[3]/Koofic[1]))*Roz[2];


Ega23   (2013-03-15 18:27:00) [1]

A1 := A + B + C + D;

A21 := A + C + D;
A22 := A + B + D;
A23 := A + B + C;

A31 := A + D;
A32 := A + C;
A33 := A + B;

SUMA[1] :=
(A / A1) *
  (
    ((B / A21) * (C / A31 + D / A32)) +
    ((C / A22) * (B / A31 + D / A33)) +
    ((D / A23) * (B / A32 + C / A33))
  );


Kirat   (2013-03-15 17:09:00) [2]

А вот первоначальное
SUMA[1]=
    (B/(A+B+C+D))*(C / (A + C + D))*(A / (A + D)) +
    (B/(A+B+C+D))*(D / (A + C + D))*(A / (A + C)) +
    (C/(A+B+C+D))*(B / (A + B + D))*(A / (A + D)) +
    (C/(A+B+C+D))*(D / (A + B + D))*(A / (A + B)) +
    (D/(A+B+C+D))*(B / (A + B + C))*(A / (A + C)) +
    (D/(A+B+C+D))*(C / (A + B + C))*(A / (A + B));


Kirat   (2013-03-15 17:02:00) [3]

но я уточнил SUMA[n] n не больше 10. n<=10


Kirat   (2013-03-15 17:02:00) [4]

но я уточнил SUMA[n] n не больше 10. n<=10


Kirat   (2013-03-15 16:59:00) [5]

MBo Так я и начал с помощи рекурсии но потом заплутался


Kirat   (2013-03-15 16:57:00) [6]

А если взять немного раньше?
SUMA[1]=
     Result[2]*(C / (A + C + D))*(A / (A + D)) +
     Result[2]*(D / (A + C + D))*(A / (A + C)) +
     Result[3]*(B / (A + B + D))*(A / (A + D)) +
     Result[3]*(D / (A + B + D))*(A / (A + B)) +
     Result[4]*(B / (A + B + C))*(A / (A + C)) +
     Result[4]*(C / (A + B + C))*(A / (A + B));


MBo   (2013-03-15 16:44:00) [7]

проще всего перестановки здесь делать с помощью рекурсии


Kirat   (2013-03-15 16:21:00) [8]

Решение очень интересное, но главная проблема
если SUMA может быть n-ое количество то Result и Matrix и  Koofic и Roz будет n-1 количество!
Я вот думаю его в два или в три цикла закинуть! Но как?


MBo   (2013-03-15 16:19:00) [9]

Все Result можно заранее разделить на соответствующие Koofic
Останется перестановка индексов, не равных индексу SUMA.
А какие закономерности будут для n>4?


Rouse_   (2013-03-15 16:09:00) [10]

const
 A: array [0..95] of Byte = (2, 3, 2, 4, 2, 4, 2, 3 и т.д.);
var
I: Integer;
...
 SUMA[1] := 0;
 for I :+ 0 to 6 do
   SUMA[1] := SUMA[1] + Result[A[I * 6]]*(Matrix[A[I * 6] + 1] / Koofic[A[I * 6] + 2])) * Roz[A[I * 6] + 3];


и т.п.


Kirat   (2013-03-15 16:06:00) [11]

Так их может быть n-ое количество, это только для четырёх =(


Jeer   (2013-03-15 15:55:00) [12]

>Алгоротм.

Это что-то :)

Ну и зачем оно тебе в цикле, когда уже написано без него?


Наверх

Титульная страница Поиск, карта сайта Написать письмо