Форум: "Начинающим";
Текущий архив: 2014.01.12;
Скачать: [xml.tar.bz2];
ВнизАлгоротм. Формулу в цикл. Найти похожие ветки
← →
kirat © (2013-03-15 15:50) [0]Здравствуйте!
Подскажите как мне вогнать вот это в цикл!
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];
← →
Jeer © (2013-03-15 15:55) [1]>Алгоротм.
Это что-то :)
Ну и зачем оно тебе в цикле, когда уже написано без него?
← →
Kirat © (2013-03-15 16:06) [2]Так их может быть n-ое количество, это только для четырёх =(
← →
Rouse_ © (2013-03-15 16:09) [3]
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];
и т.п.
← →
MBo © (2013-03-15 16:19) [4]Все Result можно заранее разделить на соответствующие Koofic
Останется перестановка индексов, не равных индексу SUMA.
А какие закономерности будут для n>4?
← →
Kirat © (2013-03-15 16:21) [5]Решение очень интересное, но главная проблема
если SUMA может быть n-ое количество то Result и Matrix и Koofic и Roz будет n-1 количество!
Я вот думаю его в два или в три цикла закинуть! Но как?
← →
MBo © (2013-03-15 16:44) [6]проще всего перестановки здесь делать с помощью рекурсии
← →
Kirat © (2013-03-15 16:57) [7]А если взять немного раньше?
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));
← →
Kirat © (2013-03-15 16:59) [8]MBo Так я и начал с помощи рекурсии но потом заплутался
← →
Kirat © (2013-03-15 17:02) [9]но я уточнил SUMA[n] n не больше 10. n<=10
← →
Kirat © (2013-03-15 17:02) [10]но я уточнил SUMA[n] n не больше 10. n<=10
← →
Kirat © (2013-03-15 17:09) [11]А вот первоначальное
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));
← →
Ega23 © (2013-03-15 18:27) [12]
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))
);
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.01.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c