Я хочу рассчитать Ps mod
K, где Ps – это общее количество уникальных перестановок элементов. в наборе S. Проблема в том, что набор S может иметь повторения, поэтому Ps = n! / (f1!f2! ... fn!), где n - количество элементов, а знаменатель - произведение факториала частот каждого элемента в S.
Целое число n можно считать значительно большим, скажем, около 10^6
, и вряд ли оно поместится в uint64_t
. Возможно ли вычислить Ps mod
K, не прибегая к библиотеке произвольной точности? Если да, есть ли какие-нибудь быстрые методы для его расчета?
uint64_t
. - person Jeremy West   schedule 04.10.2015n!
не помещается вuint64_t
? - person Jeremy West   schedule 04.10.2015n!
не подходит. - person Methusael Murmu   schedule 04.10.201510^6!
, то Psmod
K в большинстве случаев будет равно 0, если только K не очень велико. - person SpiderPig   schedule 04.10.2015k
тоже не обязательно простое число? - person Jeremy West   schedule 04.10.2015K = 10^9+7
. - person Methusael Murmu   schedule 04.10.2015