多项式展开求系数_多项式按幂展开用泰勒公式[通俗易懂]

多项式展开求系数_多项式按幂展开用泰勒公式[通俗易懂]计算系数时间限制:1Sec内存限制:128MB题目描述给定一个多项式(by+ax)k,请求出多项式展开后xn*ym项的系数。输入共一行,包含5个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开。0≤k≤1000,0≤n,m≤k且n+m=k,0≤a,b≤100,000输出输出共1行,包含一个整数,表示所求的系…_求多项式展开的系数

计算系数

时间限制: 1 Sec  内存限制: 128 MB

题目描述

给定一个多项式(by+ax)k,请求出多项式展开后xn * ym 项的系数。

 

输入

共一行,包含5 个整数,分别为 a ,b ,k ,n ,m,每两个整数之间用一个空格隔开。0≤k≤1000, 0≤n,m≤k 且 n+m=k, 0≤a,b≤100,000

 

输出

输出共1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果。

 

样例输入

复制样例数据

1 1 3 1 2

样例输出

3

饿,最近快速幂写的贼多。

(ax+by)^{k}=\sum_{i=0}^{k}C(k,i)(ax)^{k-i}(by)^{i},所以要求的x^{n}y^{m}即i=m,所以系数为C(k,m)a^{k-m}b^{m},快速幂求一下就好了

/**/
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cctype>
#include <iostream>
#include <algorithm>
#include <map>
#include <set>
#include <vector>
#include <string>
#include <stack>
#include <queue>

typedef long long LL;
using namespace std;

const int mod = 10007;

int a, b, k, n, m;

int pow_c(int x, int num){
	int res = 1 % mod;
	x %= mod;
	while(num){
		if(num & 1) res = (res * x) % mod;
		x = (x * x) % mod;
		num >>= 1;
	}
	return res;
}

int main()
{
	//freopen("in.txt", "r", stdin);
	//freopen("out.txt", "w", stdout);

	scanf("%d %d %d %d %d", &a, &b, &k, &n, &m);
	int c[k + 1];
	c[1] = 1;
	for (int i = 2; i <= k; i++) c[i] = c[i - 1] * i % mod;
	int ans = c[k] * pow_c(c[m] * c[k - m], mod - 2) % mod;
	printf("%d\n", ans * pow_c(b, k - n) % mod * pow_c(a, n) % mod);

	return 0;
}
/**/

 

今天的文章多项式展开求系数_多项式按幂展开用泰勒公式[通俗易懂]分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/57955.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注