标签:分析 play while 排列组合 不重复 pac 推广 i++ turn
排列:有序且不重复:\(P_n^m=A_n^m=\frac{n!}{(n-m)!}\)
组合:无序且不重复:\(C_n^m=\frac{n!}{(n-m)!m!}\)
推广:二项式定理
\[(x+y)^n=C_n^0x^ny^0+C_n^1x^{n-1}y^1+?+C_n^{n-1}x^1y^{n-1}+C_n^nx^0y^n=\sum_{k=0}^nC_n^kx^{n-k}y^k=\sum_{k=0}^nC_n^kx^ky^{n-k}\]
其中二次项系数符合杨辉三角
求\(\sum_{k=0}^{n}C_n^{k}\) (\(k\) 为偶数):
分析:在二项式定理中,取\(x=1,y=1\)和\(x=1,y=-1\)
则:
\[(1+1)^n=C_n^01^n1^0+C_n^11^{n-1}1^1+?+C_n^{n-1}1^11^{n-1}+C_n^n1^01^n=\sum_{i=0}^{n}C_n^i=2^n\]
\[(1-1)^n=C_n^0-C_n^1+?+(-1)^nC_n^n=\sum_{i=0}^{n}(-1)^iC_n^i\]
两式相加,得\(\sum_{k=0}^{n}C_n^{k}=2^{n-1}\)
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n;
long long ans();
int main()
{
int t; scanf("%d",&t);
for(int i=1;i<=t;i++)
{
scanf("%d",&n);
printf("%lld\n",ans());
}
return 0;
}
long long ans()
{
int sum=0;
for(int i=2;i<=n;i++)
while(n%i==0)
{
n/=i; sum++;
}
if(sum) return sum;
else return 1;
}
标签:分析 play while 排列组合 不重复 pac 推广 i++ turn
原文地址:https://www.cnblogs.com/ezsyshx/p/10358743.html