Миркес Е. М.
Шрифт:
If Direv Then Back[1] = Weight * (A – D);
End Else Begin
Estim =Weight * Sqr(A + D) / 2;
If Direv Then Back[1] = Weight * (A + D);
End
End
{Кодирование номером канала. Оценка для знакового интерпретатора.}
Est Binary1(N : Long)
Static
Real E Name "Уровень надежности";
Var
Long I, J;
Real A, B, C;
Begin
J = Answer; {Правильный ответ – номер правильного класса}
B = 0;
C = E * Reliability; {Допуск определяем произведением}
For I = 1 To N Do
If I = J Then Begin
If Signals[I] < С Then Begin
B = B + Sqr(Signals[I] – С);
If Direv Then Back[I] = 2 * Weight * (Signals[I]-С);
End;
End Else Begin
If Signals[I] > -C Then Begin
B = B + Sqr(Signals[I] + C);
If Direv Then Back[I] = 2 * Weight * (Signals[I] + C);
End
End;
Estim = Weight*B
End
{Кодирование номером канала. Оценка для максимального интерпретатора.}
Est Major1(N : Long)
Static
Real E Name "Уровень надежности";
Var
Real A, B;
Long I, J, K, Ans;
RealArray[N+1] Al,Ind;
Begin
Ans = Answer;
Ind[1] = Ans;
Al[1] = Signals[Ans] – E *Reliability;
Ind[N+1] = 0;
Al[N+1] = -1.e40;
K:=1;
For I = 1 To N Do
If I <> Ans Then Begin
Al[K] = Signals[I];
Ind[K] = I;
K = K + 1;
End; {Подготовлен массив сигналов}
For I = 2 To N-1 Do Begin
A = Al[I];
K = I;
For J = I+1 To N Do
If Al[J] > A Then Begin
K = J;
A = Al[J];
End; {Найден следующий по величине}
Al[K] = Al[I];
Al[I] = A;
J = Ind[K];
Ind[K] = Ind[I];
Ind[I] = J;
End; {Массивы отсортированы}
A = Al[1]; {Сумма первых I членов}
I = 1;
While (A / I <= Al[I+1]) Do Begin