code 41028;
real procedure KENDALLPROB(X, N);
value X, N; real X, N;
begin integer G, IX;
real procedure PROB(S, N);
value S, N; integer S, N;
begin integer I; real P;
if N = 2 then PROB:= (if ABS(S) = 1 then .5
else 0) else
begin P:= 0;
for I:= 0 step 1 until N - 1 do
P:= P + PROB(S - N + 1 + I × 2, N - 1);
PROB:= P / N
end
end;
if N < 0 ∨ ENTIER(N) < N then
STATAL3 ERROR(“KENDALLPROB”, 2, N);
G:=N × (N - 1) / 2; IX:= ENTIER(X);
if N > 9 then
begin real S; S:= SQRT(N × (N-1) × (N+N+5) / 18);
KENDALLPROB:= PHI(IX + 1/S) - PHI(IX - 1/S)
end else
KENDALLPROB:= if IX < X ∨ ABS(IX) > G ∨
(G - IX) ÷ 2 × 2 < G - IX then 0 else PROB(IX, N)
end KENDALLPROB;
eop