2013年3月30日竞赛题目二 Sigma

本文探讨了计算1^k + ... + n^k的多项式系数的方法,利用伯努利数和组合数简化计算过程。通过实例演示了如何通过已知公式推导出任意k值对应的系数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sigma

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)

Problem Description

小H是一个程序员。他很喜欢做各种各样的数学题,尤其喜欢做《水泥数学》。

在看了《水泥数学》的2.5章后,小H终于会用9种计算 1^2+2^2+...+n^2 了!这两天,他一直在思考一个加强的问题。他想要计算1^k+...+n^k。

通过思考,他发现对所有k,P(n)=1^k+...+n^k 可以表示成一个最高次数为 k+1 的有理系数多项式。比方说当k=1时P(n)=n(n+1)/2.

现在,对某个k,小H想知道P(n)的系数。

Input

         第一行为一个整数t(1 <= t <= 31),表示有 t 组测试数据;

         下面T行每行一个正整数k(0 <= k<= 30),表示一组数据。

Output

         对于每个输入k,输出一行 k+2 个分数,依次给出此时 P(n)=a_{k+1} n^{k+1}+...+a_1 n+a_0 的系数 a_{k+1},....,a_0。所有分数必须以 “a/b” 的形式给出,其中a和b为整数且互质,b>0 ;如果某一项为0,输出 “0/1”。

Sample Input
         2
         1
         2
Sample Output
         1/2 1/2 0/1
         1/3 1/2 1/6 0/1

分析:伯努利数+组合数
#include<cstdio>
#define ll __int64
#define N 31
ll c[N][N];
struct B{
	ll a,b;
}B[N];
ll gcd(ll m,ll n){return n?gcd(n,m%n):m;}
int main()
{
	int T,n,i,j;
	for(i=3;i<30;i+=2)B[i].a=0;
	B[1].a=1,B[1].b=2;
	B[2].a=1,B[2].b=6;
	B[4].a=-1,B[4].b=30;
	B[6].a=1,B[6].b=42;
	B[8].a=-1,B[8].b=30;
	B[10].a=5,B[10].b=66;
	B[12].a=-691,B[12].b=2730;
	B[14].a=7,B[14].b=6;
	B[16].a=-3617,B[16].b=510;
	B[18].a=43867,B[18].b=798;
	B[20].a=-174611,B[20].b=330;
	B[22].a=854513,B[22].b=138;
	B[24].a=-236364091,B[24].b=2730;
	B[26].a=8553103,B[26].b=6;
	B[28].a=-23749461029,B[28].b=870;
	B[30].a=8615841276005,B[30].b=14322;
	for(i=1;i<N;i++)c[i][1]=i,c[i][i]=1,c[i][0]=1;
	for(i=2;i<N;i++){
		for(j=2;j<=i;j++){
			c[i][j]=(c[i-1][j]+c[i-1][j-1]);
		}
	}
	ll AA,BB,C;
	scanf("%d",&T);
	while(T--){
		scanf("%d",&n);
		printf("1/%d",n+1);
		for(i=0;i<n;i++){
			AA=c[n][i]*B[i+1].a;
			if(AA==0){printf(" 0/1");continue;}
			BB=(i+1)*B[i+1].b;
			if(AA<0)C=gcd(-AA,BB);
			else C=gcd(AA,BB);	
			printf(" %I64d/%I64d",AA/C,BB/C);
	        }
		puts(" 0/1");
	}
	return 0;
}


内容概要:本文详细介绍了900W或1Kw,20V-90V 10A双管正激可调电源充电机的研发过程和技术细节。首先阐述了项目背景,强调了充电机在电动汽车和可再生能源领域的重要地位。接着深入探讨了硬件设计方面,包括PCB设计、磁性器件的选择及其对高功率因数的影响。随后介绍了软件实现,特别是程序代码中关键的保护功能如过流保护的具体实现方法。此外,文中还提到了充电机所具备的各种保护机制,如短路保护、欠压保护、电池反接保护、过流保护和过温度保护,确保设备的安全性和可靠性。通讯功能方面,支持RS232隔离通讯,采用自定义协议实现远程监控和控制。最后讨论了散热设计的重要性,以及为满足量产需求所做的准备工作,包括提供详细的PCB图、程序代码、BOM清单、磁性器件和散热片规格书等源文件。 适合人群:从事电力电子产品研发的技术人员,尤其是关注电动汽车充电解决方案的专业人士。 使用场景及目标:适用于需要高效、可靠充电解决方案的企业和个人开发者,旨在帮助他们快速理解和应用双管正激充电机的设计理念和技术要点,从而加速产品开发进程。 其他说明:本文不仅涵盖了理论知识,还包括具体的工程实践案例,对于想要深入了解充电机内部构造和工作原理的人来说是非常有价值的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值