我想计算大于30的数字的阶乘,当我想计算阶乘时,结果为0。
%%timeit
pd.merge(
df.groupby(by=["date", "category"])[["vals"]].rank(),
df.drop("vals", axis=1),
how="left",
left_index=True,
right_index=True,
)
1.73 s ± 180 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
答案 0 :(得分:0)
您可以使用更大的数据类型(unsigned long long int
,如果可用)。
你可以通过检查表达式中有2个和5个因子,删除它们并记住在结尾处输出额外的0来欺骗一些数字:
6! = 6 * 5 * 4 * 3 * 2 = ( 6 * 4 * 3 ) * (5*2) = "72""0"
最重要的是你使用“大数”或“任意精度”库