日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

pat 多项式A/B

發布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pat 多项式A/B 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一次接觸多項式除法

?

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

?9人閱讀?評論(0)?收藏?舉報 ?分類: ?

目錄(?)[+]

點擊打開鏈接

【轉自 ??Daemoonn? ?】

[cpp]?view plaincopy print?
  1. ??
直接看到這題,我是沒看懂的。然后就放哪里,沒有寫。后來看了多項式除法的一個視頻,(網易公開課里面的)才會多項式除法。然后發現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},以此類推?;蛘呖梢砸淮涡缘爻舳我蜃?span id="ozvdkddzhkzd" class="mwe-math-element" style="overflow-x:auto; max-width:100%">{\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. }??
  21. void?clearzoro(int?&cnt,int?be,double?*arr){??
  22. ????cnt=0;??
  23. ????for(int?i=be;i>=0;--i){??
  24. ????????if(!fabs(arr[i])<1e-8)??
  25. ????????????fabs(arr[i])<0.05?arr[i]=0.0:cnt++;??
  26. ????}??
  27. }??
  28. void?output(int?cnt,int?be,double?*arr){??
  29. ????if(cnt==0)?puts("0?0?0.0");??
  30. ????else?{??
  31. ????????printf("%d",cnt);??
  32. ????????for(int?i=be;i>=0;--i){??
  33. ????????????if(!fabs(arr[i])<1e-8)?printf("?%d?%.1lf",i,arr[i]);??
  34. ????????}??
  35. ????????puts("");??
  36. ????}??
  37. }??
  38. ??
  39. int?main(){??
  40. ??
  41. ????scanf("%d",&lena);??
  42. ????input(lena,a,&maxa);??
  43. ????scanf("%d",&lenb);??
  44. ????input(lenb,b,&maxb);??
  45. ????for(int?i=maxa;i>=maxb;--i){??
  46. ????????c[i-maxb]=a[i]/b[maxb];??
  47. ????????for(int?j=maxb;j>=0;--j)??
  48. ????????????a[j+i-maxb]-=b[j]*c[i-maxb];??
  49. ????}??
  50. ????clearzoro(cntc,maxa-maxb,c);??
  51. ????clearzoro(cnta,maxb,a);??
  52. ????output(cntc,maxa-maxb,c);??
  53. ????output(cnta,maxb-1,a);??
  54. ????return?0;??
  55. }??

總結

以上是生活随笔為你收集整理的pat 多项式A/B的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。