我最近想到了下面的問題,而且我很驚訝,似乎沒有被任何人誰問這個問題尚未:字符串的鮮明排列模素
我知道公式其中是串的長度,並是每個字符的計數(考慮大小的字母表)。所以,字符串toffee
將有不同的排列。
但這行不通了,當可真大(比如),因爲計算會出去的長的長整型範圍,並使用BigIntegers將是太慢了。有沒有什麼辦法來計算這個時間,比如或時間?
如果我預處理的階乘從到,和我的「弦」排在長度的數組,其中每個元素包含的每個字母的計數的形式,將有可能計算它在或時間?
希望得到任何幫助在此:)
它是'n! * a1 ^(p - 2)* ... * ak ^(p - 2)(mod p)'或'n! *(a1!)^(p - 2)* ... *(ak!)^(p - 2)(mod p)'? –
@RobinYu你是對的,你必須採取因子。你可以把它們模「p」,然後取其指數。 – IVlad
(y)這個答案值得比迄今爲止更多的選票。 –