第一次接触多项式除法

cccc L2-018. 多项式A除以B

2017-04-01 09:09 9人阅读 评论(0) 收藏 举报
 分类:
数学(30)  模拟(4) 

目录(?)[+]

点击打开链接

【转自   Daemoonn   】

[cpp] view plaincopy print?

直接看到这题,我是没看懂的。然后就放哪里,没有写。后来看了多项式除法的一个视频,(网易公开课里面的)才会多项式除法。然后发现Daemoonn 写的比较清楚,好记。 拿来做模板吧。

计算

{\displaystyle {\frac {x^{3}-12x^{2}-42}{x-3}}.}

把被除式、除式按某个字母作降幂排列,并把所缺的项用零补齐,写成以下这种形式:

{\displaystyle {\frac {x^{3}-12x^{2}+0x-42}{x-3}}.}

然后商和余数可以这样计算:

  1. 将分子的第一项除以分母的最高次项(即次数最高的项,此处为x)。结果写在横线之上(x3 ÷ x = x2).

    {\displaystyle {

    x2x−3)x3−12x2+0x−42¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

    }}

  2. 将分母乘以刚得到结果(最终商的第一项),乘积写在分子前两项之下(同类项对齐) (x2 · (x − 3) = x3 − 3x2).
    {\displaystyle {

    x2x−3)x3−12x2+0x−42¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯x3−3x2

    }}

  3. 从分子的相应项中减去刚得到的乘积(消去相等项,把不相等的项结合起来),结果写在下面。((x3 − 12x2) − (x3 − 3x2) = −12x2 + 3x2 = −9x2)然后,将分子的下一项“拿下来”。
    {\displaystyle {

    x2x−3)x3−12x2+0x−42¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯x3−3x2−−−−−−−−9x2+0x

    }}

  4. 把减得的差当作新的被除式,重复前三步(直到余式为零或余式的次数低于除式的次数时为止.被除式=除式×商式+余式 )
    {\displaystyle {

    x2−9xx−3)x3−12x2+0x−42¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯x3−3x2−−−−−−−−−−9x2+0x−9x2+27x−−−−−−−−−−27x−42

    }}

  5. 重复第四步。这次没什么可以“拿下来”了。
    {\displaystyle {

    x2−9x−27x−3)x3−12x2+0x−42¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯x3−3x2−−−−−−−−−−9x2+0x−9x2+27x−−−−−−−−−−27x−42−27x+81−−−−−−−−−−123

    }}

横线之上的多项式即为商,而剩下的 (−123) 就是余数。

{\displaystyle {\frac {x^{3}-12x^{2}-42}{x-3}}=\underbrace {x^{2}-9x-27} _{q(x)}\underbrace {-{\frac {123}{x-3}}} _{r(x)/g(x)}}

算数的长除法可以看做以上算法的一个特殊情形,即所有 x 被替换为10的情形。

除法变换[编辑]

使用多项式长除法可以将一个多项式写成 除数-商 的形式(经常很有用)。 考虑多项式 P(x), D(x) ((D)的次数 < (P)的次数)。 然后,对某个商多项式 Q(x) 和余数多项式 R(x) ((R)的系数 < (D)的系数),

{\displaystyle {\frac {P(x)}{D(x)}}=Q(x)+{\frac {R(x)}{D(x)}}\implies P(x)=D(x)Q(x)+R(x).}

这种变换叫做除法变换,是从算数等式 {\displaystyle {\mathrm {dividend} =\mathrm {divisor} \times \mathrm {quotient} +\mathrm {remainder} }}.[1] 得到的。

应用[编辑]

多项式的因式分解[编辑]

有时某个多项式的一或多个根已知,可能是使用有理数根定理得到的。如果一个{\displaystyle n}次多项式 {\displaystyle P(x)}的一个根{\displaystyle r}已知,那么{\displaystyle P(x)} 可以使用多项式长除法因式分解为{\displaystyle (x-r)Q(x)}的形式,其中{\displaystyle Q(x)}是一个{\displaystyle n-1}次的多项式。简单来说,{\displaystyle Q(x)}就是长除法的商,而又知{\displaystyle r}是{\displaystyle P(x)}的一个根、余式必定为零。

相似地,如果不止一个根是已知的,比如已知{\displaystyle r}和{\displaystyle s}这两个,那么可以先从{\displaystyle P(x)}中除掉线性因子{\displaystyle x-r}得到{\displaystyle Q(x)},再从{\displaystyle Q(x)}中除掉 {\displaystyle x-s},以此类推。或者可以一次性地除掉二次因子{\displaystyle x^{2}-(r+s)x+rs}

使用这种方法,有时超过四次的多项式的所有根都可以求得,虽然这并不总是可能的。例如,如果有理数根定理可以用来求得一个五次方程的一个(比例)根,它就可以被除掉以得到一个四次商式;然后使用四次方程求根的显式公式求得剩余的根。

寻找多项式的切线[编辑]

多项式长除法可以用来在给定点上查找给定多项式的切线方程。[2] 如果 R(x) 是 P(x)/(x-r)2 的余式——也即,除以 x2-2rx+r2——那么在 x=r 处 P(x) 的切线方程是 y=R(x),不论 r 是否是 P(x) 的根。

[cpp] view plaincopy print?
  1. #include<iostream>
  2. #include<string>
  3. #include<stdio.h>
  4. #include<string.h>
  5. #include<map>
  6. #include<queue>
  7. #include<math.h>
  8. #include<algorithm>
  9. using namespace std;
  10. const int maxn=1e6+100;
  11. int x,lena,lenb,maxa=-1,maxb=-1,cntc,cnta;
  12. double y,a[maxn],b[maxn],c[maxn];
  13. int input(int len,double *arr, int *maxx){
  14. for(int i=0;i<len;++i){
  15. scanf("%d%lf",&x,&y);
  16. arr[x]=y;
  17. *maxx=max(*maxx,x);
  18. }
  19. }
  20. void clearzoro(int &cnt,int be,double *arr){
  21. cnt=0;
  22. for(int i=be;i>=0;--i){
  23. if(!fabs(arr[i])<1e-8)
  24. fabs(arr[i])<0.05?arr[i]=0.0:cnt++;
  25. }
  26. }
  27. void output(int cnt,int be,double *arr){
  28. if(cnt==0) puts("0 0 0.0");
  29. else {
  30. printf("%d",cnt);
  31. for(int i=be;i>=0;--i){
  32. if(!fabs(arr[i])<1e-8) printf(" %d %.1lf",i,arr[i]);
  33. }
  34. puts("");
  35. }
  36. }
  37. int main(){
  38. scanf("%d",&lena);
  39. input(lena,a,&maxa);
  40. scanf("%d",&lenb);
  41. input(lenb,b,&maxb);
  42. for(int i=maxa;i>=maxb;--i){
  43. c[i-maxb]=a[i]/b[maxb];
  44. for(int j=maxb;j>=0;--j)
  45. a[j+i-maxb]-=b[j]*c[i-maxb];
  46. }
  47. clearzoro(cntc,maxa-maxb,c);
  48. clearzoro(cnta,maxb,a);
  49. output(cntc,maxa-maxb,c);
  50. output(cnta,maxb-1,a);
  51. return 0;
  52. }

pat 多项式A/B相关推荐

  1. PAT甲级1009 Product of Polynomials:[C++题解]多项式乘法、高精度乘法

    文章目录 题目分析 题目链接 题目分析 多项用一个数组来表示,数组下标表示多项式的次幂,存的内容表示多项式的系数. 然后用两重循环来计算多项式的乘法: for i : 第二个式子for j:第一个式子 ...

  2. PAT甲级1002 A+B for Polynomials:[C++题解]字符串、多项式加法或高精度加法

    文章目录 题目分析 题目链接 题目分析 本题数据范围是1000 ,可以开一个数组 X [ ] ,X[i ]表示多项式中次幂是i的系数是多少. 因此,本题可以开两个数组,对应相加,然后输出非零项即可. ...

  3. 【PAT甲级 多项式相乘】1009 Product of Polynomials (25 分) C++ 全部AC

    题目 思路 维护三个数组: arrA[1001]存储第一行数据 arrB[1001]存储第二行数据 c[1000000]存储计算结果 数组下标表示多项式的指数,数组存的内容表示多项式的系数 将arrA ...

  4. L2-018. 多项式A除以B -PAT团体程序设计天梯赛GPLT

    这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一个非零多项式,先给出A,再给出B.每行的 ...

  5. pat(基本编程题集)6-2 多项式求值 (15 分)

    这道题感觉有点狗,不难,但是第一次做的时候,运行超时错误让我很不解,一共才10个数大的数组,最坏情况也不过是10*10的时间复杂度O(1). 但是限制就是辣么严,这个单层循环的优化有些类似求前n个数的 ...

  6. PAT甲级1009 多项式相乘

    题目 This time, you are supposed to find A*B where A and B are two polynomials. Input Specification: E ...

  7. PAT甲级1002 多项式相加

    题目 This time, you are supposed to find A+B where A and B are two polynomials. Input Each input file ...

  8. 浙江大学PAT考试1009~1012(1010上帝是冠军。。)

    哎,pat1010即使java书面,只有java书面,还增加了两个点,,.啊,智商捉佳,主要pat有些不给明确的范围.造成遐想空间.. 还是按顺序介绍.. 题目地址:http://pat.zju.ed ...

  9. 【PAT】1009. Product of Polynomials (25)

    题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1009 分析:简单题.相乘时指数相加,系数相乘即可,输出时按指数从高到低的顺序.注意点:多项式相 ...

最新文章

  1. 一个form表单,多个提交按钮(实现不同功能和地址的提交)
  2. Linux拜拜!微软给WSL加入GPU支持,Windows终于迎来命令行包管理工具
  3. 线程学习5——竞态条件
  4. [How TO]-openjrok维护手册
  5. C语言实例第3期:在控制台打印出著名的杨辉三角
  6. LeNet试验(五)观察“彩票假说”现象
  7. 10.14 socket 网络编程
  8. Lync-用户-电话号码-更新
  9. leetcode77. 组合(回溯)
  10. 5分钟速成C++14多线程编程
  11. java. tcp. 权限,java - tcpdump的不能够写PCAP文件。没有权限 - SO中文参考 - www.soinside.com...
  12. 是用int还是用Integer?
  13. VB读写远程Mysql数据库
  14. 简单的一个百度注册界面
  15. wps怎么恢复成单页_WPS怎么调回单页显示
  16. echarts 报错Failed to execute 'createRadialGradient' on 'CanvasRenderingContext2D': The provided doubl
  17. JavaCV音视频开发宝典:JavaCV实现mp3音频直播FM在线电台服务,无需流媒体服务,浏览器原生audio标签直接播放mp3,支持rtsp/rtmp/flv/hls/本地音视频源直接转码到mp3
  18. CODE RO RW ZI的区别
  19. Python-ural1296. Hyperjump
  20. GateWay 服务网关

热门文章

  1. 2022-2028年中国PET基膜行业市场发展规模及市场分析预测报告
  2. RPC 笔记(03)— gRPC 概念、安装、编译、客户端和服务端示例
  3. Python | 安装Jupyter Notebook及其目录的更改 jupyter问题
  4. 协程和任务 异步IO 重点
  5. Python 标准库之 xml.etree.ElementTree xml解析
  6. 解读模拟摇杆原理及实验
  7. 深度学习Anchor Boxes原理与实战技术
  8. Android中View如何刷新
  9. 2021年大数据环境搭建(一):​​​​​​​​​​​​​​​​​​​​​Hadoop编译
  10. 2021年大数据常用语言Scala(三十五):scala高级用法 提取器(Extractor)