首页 > 代码库 > Java之实现多项式展开
Java之实现多项式展开
问题描述:
输入:a, b, n, c, d, t的值
求(ax+b)^n*(cx+d)^t的展开式
样例:
输入: 2 3 4 2 4 5
输出:[(2x+3)^4]*[(2x+4)^5]的展开式如下:
82944x^0+428544x^1+981504x^2+1307904x^3+1117504x^4+634912x^5+239872x^6+58112x^7+8192x^8+512x^9
算法解析:
a. 先展开第一个式子(ax+b)^n;用key1[n]来存储展开x^n的系数;同理用key2[]记录第二个式子。
b. i从0开始n,用key[n]==key1[i]*key[n-i]+key[n]。
c. key[]数组便记录了结果中x^0——X^n的系数。
代码:
1 package xiaomiDuoxiangshi; 2 3 import java.util.*; 4 5 public class xiaomiBishi1 { 6 static void CengJi(int A,int B ,int N,int ky[]){ 7 8 int a=A;int b=B;int n=N; 9 for(int i=0;i<=n;i++)10 { 11 ky[i]=(int)Math.pow(a, i)*(int)Math.pow(b, n-i);12 // System.out.println(ky[i]);13 }14 System.out.println("paused");15 for(int i=0;i<=n;i++)16 {17 for(int j=0;j<i;j++)18 ky[i]=ky[i]*(n-j)/(j+1);19 // System.out.println(ky[i]);20 }21 // System.out.println("paused");22 }23 public static void main(String[] args) { 24 25 int a,b,c,d,n,t;26 String f; 27 String k_s[];28 Integer k[];29 Scanner br=new Scanner(System.in);30 f=br.nextLine(); //把输入的字符串赋给f31 br.close();32 k_s=f.split(" "); 33 a=Integer.parseInt(k_s[0]);34 b=Integer.parseInt(k_s[1]);35 n=Integer.parseInt(k_s[2]);36 c=Integer.parseInt(k_s[3]);37 d=Integer.parseInt(k_s[4]);38 t=Integer.parseInt(k_s[5]);39 /*40 System.out.print(a);41 System.out.print(b);42 System.out.print(c);43 System.out.print(d);44 System.out.println(n);45 */46 int[] key1;47 int[] key2;48 key1=new int[1000];49 key2=new int[1000];50 int key[]=new int[10000];51 CengJi(a,b,n,key1);52 CengJi(c,d,t,key2);53 System.out.println("结果是:");54 for(int p=0;p<=n+t;p++){55 key[p]=0;56 for(int q=0;q<=p;q++){57 // System.out.println("Begin:");58 // System.out.println(key[p]);59 // System.out.println(q);60 // System.out.println(p-q);61 // System.out.println(key1[p]);62 // System.out.println(key2[p-q]);63 key[p]=key[p]+key1[q]*key2[p-q];64 //System.out.println(key[p]);65 }66 if(p!=0)67 System.out.print("+");68 System.out.print(key[p]);69 System.out.print("x^");70 System.out.print(p);71 }72 System.out.println();73 }74 }
Java之实现多项式展开
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。