Существует ли решение SQL для гипергеометрии c Распределение для конечного множества? - PullRequest
0 голосов
/ 22 апреля 2020

Я ищу эквивалентную SQL реализацию HYPGEOM.DIST в Microsoft Excel. Я исследовал возможность заполнения таблицы факториалов с распределениями от 1 до N (1 ... N), но ищу дополнительные варианты.

HYPGEOM.DIST Equation

Given:

x = sample_s
n = number_sample
M = population_s
N = number_pop

Справочные функции Excel: https://support.office.com/en-us/article/hypgeom-dist-function-6dbd547f-1d12-4b1f-8ae5-b0d9e3d22fbf

1 Ответ

1 голос
/ 22 апреля 2020

Вы можете предварительно рассчитать факториалы для любого диапазона, который вам необходим, используя любую технику, которая вам наиболее удобна, и сохранить их в отдельной таблице.

Остальное, я полагаю, должно быть тривиальным.

РЕДАКТИРОВАТЬ: Если подумать, я не уверен, как вы планируете на go выше пределов, с которыми вы уже столкнулись. 170! ~= 7.25741562E+307, и максимальное значение, которое может быть сохранено как число с плавающей запятой, составляет 1,79E + 308, согласно документации . Кажется, SQL Сервер не совсем подходит для вашей задачи; вам придется искать в других местах системы, которые обрабатывают (и хранят) очень большие числа.

Возможно, можно прибегнуть к вычислениям в логарифмах, а не к действительным значениям - это особенно заманчиво, учитывая, что исходная форма Формула Стерлинга на самом деле логарифмическая c. Однако для этого потребуется переписать все эти формулы в их логарифмические c формы. Это включает в себя немало математики, и мои личные знания недостаточны даже для того, чтобы сказать, достижимо ли это на самом деле. Но это не значит, что это должно остановить вас от попыток:)

...