児玉 です.

From: IKEGAMI Daisuke <daisu-ik / is.aist-nara.ac.jp>
Subject: [ruby-math:00360] Re: one/zero for algebraic class
Date: Mon, 04 Sep 2000 18:15:41 +0900
Message-ID: <200009040915.AA21407 / rho.aist-nara.ac.jp>

> いけがみです.
> 
> 多項式クラスの実装の上で,
> 係数環クラスの名前を与えてやらなければいけないというのは
> 少し残念です.
> 名前で与えてやらなければいけないとなると,
> 新しい数が登場するたびに Polynomial クラスを書き換えなきゃいけないのではないか
> と思います.

いや,単なる思い付きの案だったのですが,
係数環毎に Polynomial を書き換えるのとは __逆に__,
パラメ−タ−として係数環を与えるように
f=Polynomial("3 x**2 + x + 1",Integer) # Z[x] とみなす
g=Polynomial("3 x**2 + x + 1", Complex) # C[x] とみなす
のように Polynomial を変更して,
一方で, 環の方で one, zero を実装しておくと
なんとかなるか? と思ったわけ.


> # まあ多項式環の係数にくるのはせいぜい(準)環か体でしょうから,
> # 種類はそうはないだろうとは思うんですけれども
> 
> coerce の力を借りて,
> 
> x = Variable("x")  # xという名前の文字
> f = 3 x**2 + x + 1 # Polynomial("3 x**2 + x + 1")

これは
x=Polynomial("x");
f = 3 * x**2 + x + 1 # Polynomial("3 x**2 + x + 1")
に対応するけど,

> x.set_value(1)     # x = 1; f = 5
> x.set_value(0)     # x = 0; f = 1

f1=f.substitute(1)  # 5
f0=f.substitute(0)  # 1
のような代入を使ってもらうしかないようです.

-- 
K.Kodama(kodama / kobe-kosen.ac.jp)