![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Алгоротм. Формулу в цикл. [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]>Алгоротм.
Это что-то :)
Ну и зачем оно тебе в цикле, когда уже написано без него?