pat 多项式A/B
第一次接触多项式除法
cccc L2-018. 多项式A除以B
目录(?)[+]
点击打开链接
【转自 Daemoonn 】
直接看到这题,我是没看懂的。然后就放哪里,没有写。后来看了多项式除法的一个视频,(网易公开课里面的)才会多项式除法。然后发现Daemoonn 写的比较清楚,好记。 拿来做模板吧。
计算
- {\displaystyle {\frac {x^{3}-12x^{2}-42}{x-3}}.}
把被除式、除式按某个字母作降幂排列,并把所缺的项用零补齐,写成以下这种形式:
- {\displaystyle {\frac {x^{3}-12x^{2}+0x-42}{x-3}}.}
然后商和余数可以这样计算:
- 将分子的第一项除以分母的最高次项(即次数最高的项,此处为x)。结果写在横线之上(x3 ÷ x = x2).
-
{\displaystyle {
x2x−3)x3−12x2+0x−42¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
}}
-
{\displaystyle {
- 将分母乘以刚得到结果(最终商的第一项),乘积写在分子前两项之下(同类项对齐) (x2 · (x − 3) = x3 − 3x2).
-
{\displaystyle {
x2x−3)x3−12x2+0x−42¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯x3−3x2
}}
-
{\displaystyle {
- 从分子的相应项中减去刚得到的乘积(消去相等项,把不相等的项结合起来),结果写在下面。((x3 − 12x2) − (x3 − 3x2) = −12x2 + 3x2 = −9x2)然后,将分子的下一项“拿下来”。
-
{\displaystyle {
x2x−3)x3−12x2+0x−42¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯x3−3x2−−−−−−−−9x2+0x
}}
-
{\displaystyle {
- 把减得的差当作新的被除式,重复前三步(直到余式为零或余式的次数低于除式的次数时为止.被除式=除式×商式+余式 )
-
{\displaystyle {
x2−9xx−3)x3−12x2+0x−42¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯x3−3x2−−−−−−−−−−9x2+0x−9x2+27x−−−−−−−−−−27x−42
}}
-
{\displaystyle {
- 重复第四步。这次没什么可以“拿下来”了。
-
{\displaystyle {
x2−9x−27x−3)x3−12x2+0x−42¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯x3−3x2−−−−−−−−−−9x2+0x−9x2+27x−−−−−−−−−−27x−42−27x+81−−−−−−−−−−123
}}
-
{\displaystyle {
横线之上的多项式即为商,而剩下的 (−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的情形。
除法变换[编辑]
应用[编辑]
多项式的因式分解[编辑]
寻找多项式的切线[编辑]
- #include<iostream>
- #include<string>
- #include<stdio.h>
- #include<string.h>
- #include<map>
- #include<queue>
- #include<math.h>
- #include<algorithm>
- using namespace std;
- const int maxn=1e6+100;
- int x,lena,lenb,maxa=-1,maxb=-1,cntc,cnta;
- double y,a[maxn],b[maxn],c[maxn];
- int input(int len,double *arr, int *maxx){
- for(int i=0;i<len;++i){
- scanf("%d%lf",&x,&y);
- arr[x]=y;
- *maxx=max(*maxx,x);
- }
- }
- void clearzoro(int &cnt,int be,double *arr){
- cnt=0;
- for(int i=be;i>=0;--i){
- if(!fabs(arr[i])<1e-8)
- fabs(arr[i])<0.05?arr[i]=0.0:cnt++;
- }
- }
- void output(int cnt,int be,double *arr){
- if(cnt==0) puts("0 0 0.0");
- else {
- printf("%d",cnt);
- for(int i=be;i>=0;--i){
- if(!fabs(arr[i])<1e-8) printf(" %d %.1lf",i,arr[i]);
- }
- puts("");
- }
- }
- int main(){
- scanf("%d",&lena);
- input(lena,a,&maxa);
- scanf("%d",&lenb);
- input(lenb,b,&maxb);
- for(int i=maxa;i>=maxb;--i){
- c[i-maxb]=a[i]/b[maxb];
- for(int j=maxb;j>=0;--j)
- a[j+i-maxb]-=b[j]*c[i-maxb];
- }
- clearzoro(cntc,maxa-maxb,c);
- clearzoro(cnta,maxb,a);
- output(cntc,maxa-maxb,c);
- output(cnta,maxb-1,a);
- return 0;
- }
pat 多项式A/B相关推荐
- PAT甲级1009 Product of Polynomials:[C++题解]多项式乘法、高精度乘法
文章目录 题目分析 题目链接 题目分析 多项用一个数组来表示,数组下标表示多项式的次幂,存的内容表示多项式的系数. 然后用两重循环来计算多项式的乘法: for i : 第二个式子for j:第一个式子 ...
- PAT甲级1002 A+B for Polynomials:[C++题解]字符串、多项式加法或高精度加法
文章目录 题目分析 题目链接 题目分析 本题数据范围是1000 ,可以开一个数组 X [ ] ,X[i ]表示多项式中次幂是i的系数是多少. 因此,本题可以开两个数组,对应相加,然后输出非零项即可. ...
- 【PAT甲级 多项式相乘】1009 Product of Polynomials (25 分) C++ 全部AC
题目 思路 维护三个数组: arrA[1001]存储第一行数据 arrB[1001]存储第二行数据 c[1000000]存储计算结果 数组下标表示多项式的指数,数组存的内容表示多项式的系数 将arrA ...
- L2-018. 多项式A除以B -PAT团体程序设计天梯赛GPLT
这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一个非零多项式,先给出A,再给出B.每行的 ...
- pat(基本编程题集)6-2 多项式求值 (15 分)
这道题感觉有点狗,不难,但是第一次做的时候,运行超时错误让我很不解,一共才10个数大的数组,最坏情况也不过是10*10的时间复杂度O(1). 但是限制就是辣么严,这个单层循环的优化有些类似求前n个数的 ...
- PAT甲级1009 多项式相乘
题目 This time, you are supposed to find A*B where A and B are two polynomials. Input Specification: E ...
- PAT甲级1002 多项式相加
题目 This time, you are supposed to find A+B where A and B are two polynomials. Input Each input file ...
- 浙江大学PAT考试1009~1012(1010上帝是冠军。。)
哎,pat1010即使java书面,只有java书面,还增加了两个点,,.啊,智商捉佳,主要pat有些不给明确的范围.造成遐想空间.. 还是按顺序介绍.. 题目地址:http://pat.zju.ed ...
- 【PAT】1009. Product of Polynomials (25)
题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1009 分析:简单题.相乘时指数相加,系数相乘即可,输出时按指数从高到低的顺序.注意点:多项式相 ...
最新文章
- 一个form表单,多个提交按钮(实现不同功能和地址的提交)
- Linux拜拜!微软给WSL加入GPU支持,Windows终于迎来命令行包管理工具
- 线程学习5——竞态条件
- [How TO]-openjrok维护手册
- C语言实例第3期:在控制台打印出著名的杨辉三角
- LeNet试验(五)观察“彩票假说”现象
- 10.14 socket 网络编程
- Lync-用户-电话号码-更新
- leetcode77. 组合(回溯)
- 5分钟速成C++14多线程编程
- java. tcp. 权限,java - tcpdump的不能够写PCAP文件。没有权限 - SO中文参考 - www.soinside.com...
- 是用int还是用Integer?
- VB读写远程Mysql数据库
- 简单的一个百度注册界面
- wps怎么恢复成单页_WPS怎么调回单页显示
- echarts 报错Failed to execute 'createRadialGradient' on 'CanvasRenderingContext2D': The provided doubl
- JavaCV音视频开发宝典:JavaCV实现mp3音频直播FM在线电台服务,无需流媒体服务,浏览器原生audio标签直接播放mp3,支持rtsp/rtmp/flv/hls/本地音视频源直接转码到mp3
- CODE RO RW ZI的区别
- Python-ural1296. Hyperjump
- GateWay 服务网关
热门文章
- 2022-2028年中国PET基膜行业市场发展规模及市场分析预测报告
- RPC 笔记(03)— gRPC 概念、安装、编译、客户端和服务端示例
- Python | 安装Jupyter Notebook及其目录的更改 jupyter问题
- 协程和任务 异步IO 重点
- Python 标准库之 xml.etree.ElementTree xml解析
- 解读模拟摇杆原理及实验
- 深度学习Anchor Boxes原理与实战技术
- Android中View如何刷新
- 2021年大数据环境搭建(一):​​​​​​​​​​​​​​​​​​​​​Hadoop编译
- 2021年大数据常用语言Scala(三十五):scala高级用法 提取器(Extractor)