0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

x^12をx^4-1で割ったときの余り「2003 東京都立大前期【1】」をChatGPTとWolframAlphaとsympyでやってみたい。

Last updated at Posted at 2023-09-18

・ChatGPT-3.5先生の長除法ステキです。(長除法?をgoogle検索)
・sympyに、div関数がありました。
・以下,私のページで、おすすめ?のゆうどうのです。
 「整式の割り算」の勉強を始めました。xは実数? ChatGPT-3.5先生へ

オリジナル 
(youtube 11:04) math karat 様より

上と同じです。大学入試数学問題集成 様>テキスト【1】

ChatGPT-3.5先生へ(できました)

入力文(一括入力です。)

(1)x^3 をx-1  で割ったときの余りを求めよ.
(2)x^12をx^4-1で割ったときの余りを求めよ.
(3)x^13をx^4-1で割ったときの余りを求めよ.

長除法ステキです。 省略です。お楽しみに。

(1) x^3 を x-1 で割るときの余りを求めるには、次のように長除法を使うことができます。
(2) ...再び長除法を使用できます。
(3) ...同様に長除法を使用して求めることができます。

WolframAlphaで

日本語で

(1)

(2)

(3)

PolynomialRemainderで

(1)

(2)

(3)

sympyのdiv関数で(1)(2)(3)

Division<Doc
https://docs.sympy.org/latest/modules/polys/basics.html#basic-functionality

from sympy import *
var('x',real=True)
def myDiv(myP,myS):
     return div(myP,myS)[1],div(myP,myS)
print("#(1)",myDiv(x**3 ,x-1   ))
print("#(2)",myDiv(x**12,x**4-1))
print("#(3)",myDiv(x**13,x**4-1))
#(1) (1, (x**3 + x**2 + x + 1, 1))
#(2) (1, (x**8 + x**4 + 1, 1))
#(3) (x, (x**9 + x**5 + x, x))

sympyで(1)のみ(math karat 様の解法で)

from sympy import *
var('x')
var('Q,R')
(P,S)=(x**3,x-1)
eq1=Eq(P      ,S*Q+R              ) ;print("#eq1",eq1)
eq2=Eq(eq1.lhs,eq1.rhs).subs({x:1}) ;print("#eq2",eq2)
#eq1 Eq(x**3, Q*(x - 1) + R)
#eq2 Eq(1, R1)

sympyで(2)のみ(math karat 様の(解法1)で) 剰余の定理

from sympy import *
var('x')
var('Q,a,b,c,d')
(P,S) =(x**12,x**4-1)
R     =a*x**3+b*x**2+c*x+d
ans   =solve(S)                                                ;print("#ans ",ans )
eq1   =Eq(P    ,S*Q+R)                                         ;print("#eq1 ",eq1 )
eq20  =Eq(eq1.lhs,eq1.rhs).subs({x:ans[0]})                    ;print("#eq20",eq20)
eq21  =Eq(eq1.lhs,eq1.rhs).subs({x:ans[1]})                    ;print("#eq21",eq21)
eq22  =Eq(eq1.lhs,eq1.rhs).subs({x:ans[2]})                    ;print("#eq22",eq22)
eq23  =Eq(eq1.lhs,eq1.rhs).subs({x:ans[3]})                    ;print("#eq23",eq23)
ans   =solve([eq20,eq21,eq22,eq23],[a,b,c,d])                  ;print("#ans ",ans )
print("#R   ",R.subs({a:ans[a],b:ans[b],c:ans[c],d:ans[d]})) 
#ans  [-1, 1, -I, I]
#eq1  Eq(x**12, Q*(x**4 - 1) + a*x**3 + b*x**2 + c*x + d)
#eq20 Eq(1, -a + b - c + d)
#eq21 Eq(1, a + b + c + d)
#eq22 Eq(1, I*a - b - I*c + d)
#eq23 Eq(1, -I*a - b + I*c + d)
#ans  {a: 0, b: 0, c: 0, d: 1}
#R    1

sympyで(2)のみ(math karat 様の(解法2)で)割り算の実行

・ChatGPT-3.5先生のような
 フリーソフトがあれば、教えて下さい。
・div関数で十分ですか、私も,print文でもガンバれば?できそうな気もします。

sympyで(2)のみ(math karat 様の(解法3)で)因数分解の活用

・math karat 様の解法と違いますけど、安易にfactor関数にしました。
factor
factor() takes a polynomial and factors it into irreducible factors over the rational numbers.
https://docs.sympy.org/latest/tutorials/intro-tutorial/simplification.html#factor

from sympy import *
var('x')
(P,S)=(x**12,x**4-1)
eq1  =Eq(P      ,factor(P-1)+1)                   ;print("#eq1 ",eq1 )
eq2  =Eq(S      ,factor(S)    )                   ;print("#eq2 ",eq2 )
eq12 =Eq(eq1.lhs,eq1.rhs).subs({eq2.rhs:eq2.lhs}) ;print("#eq12",eq12)
#eq1  Eq(x**12, (x - 1)*(x + 1)*(x**2 + 1)*(x**2 - x + 1)*(x**2 + x + 1)*(x**4 - x**2 + 1) + 1)
#eq2  Eq(x**4 - 1, (x - 1)*(x + 1)*(x**2 + 1))
#eq12 Eq(x**12, (x**4 - 1)*(x**2 - x + 1)*(x**2 + x + 1)*(x**4 - x**2 + 1) + 1)

sympyで(3)のみ(math karat 様の解法で)

from sympy import *
var('x')
(P,S)=(x**13,x**4-1)
eq1  =Eq(P,factor(P-x)+x)                         ;print("#eq1 ",eq1 )
eq2  =Eq(S,factor(S)    )                         ;print("#eq1 ",eq2 )
eq12 =Eq(eq1.lhs,eq1.rhs).subs({eq2.rhs:eq2.lhs}) ;print("#eq12",eq12)
#eq1  Eq(x**13, x*(x - 1)*(x + 1)*(x**2 + 1)*(x**2 - x + 1)*(x**2 + x + 1)*(x**4 - x**2 + 1) + x)
#eq1  Eq(x**4 - 1, (x - 1)*(x + 1)*(x**2 + 1))
#eq12 Eq(x**13, x*(x**4 - 1)*(x**2 - x + 1)*(x**2 + x + 1)*(x**4 - x**2 + 1) + x)

sympyの実行環境

①私の環境は,pycharmです。
②よく聞くのは、Jupyterです。
③web上で、上記のソースを「SymPy Live shell」に、コピー貼り付けでもできました。
黒背景の右上に、マウスを移動すると、コピーマークが発生します。
??? タブレット環境で、コピー貼り付けが実行できませんでした。???

参考

以下、いつもの?おすすめです。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?