Я пытаюсь запустить следующую факториальную функцию, но получаю следующую ошибку.
Превышен максимальный уровень вложенности хранимой процедуры, функции, триггера или представления (предел 32).
Возможно ли это исправить?
The binomial formula given that
x = total number of “successes” (pass or fail, heads or tails etc.) -- 0.025
P = probability of a success on an individual trial --Rate 0.000729
n = number of trials -- Denominator 13725
q= 1 – p –- is as below:
DECLARE @n float(53), @x float(53), @p decimal(10, 10), @q decimal(10,10)
DECLARE @p0 decimal(10,10), @p1 decimal(10,10), @p2 decimal(10,10), @n1 float(53), @n2 float(53), @n3 float(53)
SELECT @n =13725 , @x = 0.025 , @p = 0.000729,@q=1-@p
SELECT @x = 0.025
SELECT @n1 = dbo.factorial(@n)
SELECT @n2 = dbo.factorial(@n-@x)
SELECT @n3 = 1
SELECT @p1 = ( @n1/(@n2 * @n3))*power(@p, @x)*power(@q,@n-@x)
select @p1 as 'Probability of 0 people getting lung illness'
---factorial function
create function dbo.factorial(@num1 float(53))
returns float(53)
as
begin
declare @factno bigint;
if (@num1=1) set @factno=1;
else
set @factno= @num1*dbo.factorial(@num1-1);
return @factno;
end
go