担当授業のこととか,なんかそういった話題。

主に自分の身の回りのことと担当講義に関する話題。時々,寒いギャグ。

多項式の係数の和を知りたいなぁ。そんなとき。

2012-11-29 22:02:10 | mathematics
二値論理の二項演算の種類の個数について考えようとしたとき,ふと入力 x,y を入れ替えても値が変わらないような場合は1通りと数えようか,などとぼんやり考えていた。実際には x□y というに二項演算について,x と y は合わせて4通り,□は全部で16通りの種類があるから,全部で何通りだろうか,などと,何の個数を実際に数えたかったのか,我ながらよくわからないことをもやもやと考えていた。

そのとき,真面目に全部書き出してカウントするのは大変だから,もっと手っ取り早く求められないかな,と考えがわき道に逸れ始めた。

例えば二項係数 nCk の k=0 から n までの和は,(x+y)n の展開式において x=y=1 を代入すれば x や y が「消え」て係数の和だけが残るから,和は 2n だとわかる。このような考え方は,高校で習った二項分布の記憶が元である。

さて,(x+y+z)2 は x,y,z の二乗は1つずつしか出て来ないものの,xy などは xy と yx を合わせて係数が 2 になる。

このことを踏まえた上で,文字 x,y,z から2つ選んで掛け合わせてできる項のうち,同類項は1種類とカウントすることにすると,全部で何通りの項が出てくるか,という問題を考えよう。

実際に数え上げればすぐに答えはわかる。1文字の二乗が全部で3種類,2文字を用いるものが全部で3種類,合計 6 種類である。

しかし,これは順列あるいは組合せの考え方で直ちにわかるというものではないように思われる。何かうまい数え方はないだろうか。

そう考えているうちに思いついたのが,次の恒等式である:

{(x+y)2+(y+z)2+(z+x)2}/2=x2+y2+z2+xy+yz+zx.

そもそもこの等式の左辺を展開したら,3つの文字から2つだけを選んで掛け合わせてできる項が全種類登場し,しかもどの項の係数も1であるということは,実際に左辺を展開してみないと確かめようがないであろう。ということは,作られる項の全部を書き出して,それらの間に "+" を書いただけに過ぎず,結局のところ直接的な数え上げと同じ作業を必要とするわけだから,数え上げよりも簡便な方法とは全く言えない代物である。そういうわけで無用の長物なのであるが,せっかくなので x=y=z=1 を代入してみると,左辺もちゃんと 6 になり,項が全部で 6 種類だということが再確認できる。

しかも,文字が 3 つだからこの恒等式が成り立つのであって,文字が4つになると,このような恒等式を探すのが難しくなってくる。というか,僕にはちょっと思いつかない。

場合分けをして,それぞれの場合について組合せの考え方を利用するのが妥当であるような気がしてきた。

そういう意味ではいまいちなアイデアであったのだが,展開公式を利用すると,係数の和の集計が楽になる別の場合も思いついたので,それを記しておく。

例えば (x+y+z)n の展開式において,z を含まない項の係数の和が知りたいとしよう。そのようなときは,x=y=1,z=0 を代入すればよい。そうすると z を含む項は 0 になって消え去り,x と y だけが出てくる項の係数の和が 2n になることがわかる。もっとも,そんなことくらいは,x+y+z を,(x+y)+z と区切って,x+y と z の二項展開を行ったものと思えば,z を含まない項は (x+y)n に他ならないこととなり,それから結局二項係数の総和になることがすぐにわかる。

ただ,この2項展開の式の x や y に具体的な数値を代入するという操作を利用すると,一見,どうやって和を求めたらよいかわからないような級数の和を一瞬で求めることができるという,面白い問題と解法が作れる。

今回はいまいち不発だったが,またいつかこの手法を応用できないか考える機会が訪れるかもしれない。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Deutsch の問題。

2012-11-29 20:29:27 | physics
量子計算の分野で知らぬ人はいないであろう,世界的に有名な David Deutsch(ドイッチュ)という人がいる。

この人が(たぶん1985年に書いた論文で)述べた問題およびその解法は Deutsch の問題だとか,Deutsch のアルゴリズムという言葉で呼ばれている。

その問題は "Deutsch's algorithm" と題するサイトによると,次のようなものである。

0 または 1 を入力すると,0 か 1 のいずれかを出力する関数 f がある(そのような関数は,2通りの入力 0,1 のそれぞれに 0 か 1 かを対応させるので,22=4 通りある)。この関数 f が定数関数(0 と 1 のどちらの入力に対しても 0 しか出力しないか,あるいは 1 しか出力しない)か,そうでないかを決定せよ。

Deutsch 氏によると,このような関数の性能を一回の測定で調べるだけで,定数関数かそうでないかを決定できるということである。

実のところきちんとした状況設定と Deutsch の解法(アルゴリズム)を理解していないので,これ以上きちんと説明はできないが,正直者か嘘つきであるかのどちらかはわからないが,いずれかである人に一つの質問をするだけで進むべき正しい道を知るという論理パズルについて話しているときに,gk 氏が教えてくれた問題である。

ちなみに,今読んでいる Smullyan 氏の本にはこの手の問題がたくさん載っているので,この類の問題を "One-question problem" (略して OQP)と呼ぶことにする。(誤解のないように断っておくと,この呼称は僕が今ここで勝手に名づけただけで,Smullyan 氏がそう呼んでいるわけではない。)

ちょうど二週間前にそこそこ使える統一的な解法を一つ見出したが,それはまた機会があれば述べることにする。

Deutsch 氏の問題と OQP が関連あるかどうかは今のところよくわからないが,Deutsch 氏の問題の答えの結論そのものは,最初聞いたときには驚いたが,今では驚きはそれほどでもない。

ポイントは,この関数の 0 に対する出力と 1 に対する出力の排他的論理和 (EXOR) の値を何らかの方法で知ることにあるようだ。けれども,問題の設定として,問題の関数 f に「訊ける」のは一回だけであって,素朴に考えると 0 か 1 かのいずれかを入力することくらいしか思いつかない。しかし,それだと,例えば 0 に対して 0 が返ってきたとしても,1 を入力したら 0 なのか 1 なのかはそれだけの情報からは全くわからない。

そこで Deutsch 氏は量子状態に特有の entanglement(エンタングルメント,「もつれ」などと訳される)という状態をうまく利用すれば,ある意味,0 と 1 を同時に関数 f に入力し,その結果の排他的論理和を観測値として手に入れることができることを示したらしい。この場合,「観測値」というのはもはや f の出力そのものではないので,別にこしらえた何らかの装置が必要なはずであるが,それがおそらく entanglment している量子状態なのだろう。

詳細は,がんばってサイト "Deutsch's algorithm" を解読して勉強することとして,なぜ驚きが薄れたかを最後に述べて締めくくることにしよう。

「古典的」には 0,1 の二種類の入力を個別に与えることしかできず,それらに対する出力だけでは f が定数関数かそうでないかの特定までには至らない。けれども,f の特性のうち,「半分」だけはわかる。
つまり,0 を入力したら 0 を出すのか,1 を出すのか,という結果により,4通りある f の可能性のうち,2通りにまで減らすことができる。

一方,「量子的」な方法によると,f が2通りある定数関数タイプのいずれかか,そうでない残りの2通りのいずれかであることがわかるという意味では,やはり4通りの可能性を半分の2通りに減らすことができるわけであるが,しかし,0 を入力したら f が 0 と 1 のいずれを出力するのか,1 に対して何を返すのかは全くわからないのである。

つまり,「はい」か「いいえ」の一つの答えでもって4通りの可能性を2通りの可能性までにしか絞れない,という点では,常識的な範疇の話であるな,という気がする。そのような捉え方をすると,それほど逆説的な結果であるようには思えないのである。

ただ,0 に対して x,1 に対して y を返す関数を [x,y] という記号で表すことにすると,普通に考えただけでは,一回の測定の結果からは

[0,0] と [0,1] のいずれかであるか,あるいは [1,0] と [1,1] のいずれかであるか

というグループ分けしかできないのに対し,Deutsch 氏の方法では

[0,0] と [1,1] のいずれかであるか,あるいは [0,1] と [1,0] のいずれかであるか

という,全く異なる組み分けを可能にするわけだから,よくそんな方法を思いついたものだなぁ,という点については,驚嘆の念が強まりこそすれ,薄まることはない。

ちなみに,旅人が道を訊くタイプの OQP では,

「村人が正直者で右の道が正しい」か「村人が嘘つきで左の道が正しい」かの,どちらであるかを知りたければ,「右の道は正しいですか」と尋ねればよい。

答えが「はい」なら,右の道が正しくて村人が正直に答えたか,あるいは右の道は間違いで,村人が嘘をついたかのいずれかだからである。こう訊けばよいことは,僕が考えた OQP の解法を利用すれば直ちにわかる。

と,思わせぶりなことを言ってみたり。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

【高校数学のツボ】 商の微分公式。

2012-11-29 20:07:03 | mathematics
2つの微分可能な関数の商として定義される関数の微分可能性と導関数は,微分可能性の定義にしたがって平均変化率の極限を考えれば同時に得られる。

ここでは,そうした真正面からの議論を展開ではなく,商の微分公式以外の強力な知識を前提としてからめ手で商の微分公式を導いてみる。(ここに述べることの一部は4ヵ月前に書いたことがある。)


1. 1/x の導関数+積の微分公式+合成関数の微分公式

まず,1/x の導関数が -1/x2 であることと合成関数の微分公式を組み合わせて 1/g(x) の導関数が -g ' (x)/g(x)2 であることを導く。

その後,f(x)/g(x) を f(x) と 1/g(x) の積とみなして積の微分公式を適用する。


2. 積の微分公式+商が微分可能であると仮定する

h(x)=f(x)/g(x) とおく。h(x) が微分可能であることはなんらかの方法で示す必要があるが,もしそれがわかっていたとすると,分母を払って

f(x)=h(x)g(x)

とし,この両辺を微分すれば,右辺は積の微分公式により

f ' (x)=h ' (x)g(x)+h(x)g ' (x)

となるので,この式を h ' (x) について解けば

h ' (x)g(x)=f ' (x)-h(x)g ' (x)={f ' (x)g(x)-f(x)g ' (x)}/g(x)

を経て

h ' (x)={f ' (x)g(x)-f(x)g ' (x)}/g(x)2

に到達する。


3. 差の微分公式+合成関数の微分公式+指数関数と対数関数の導関数

h(x) は正の値のみを取る関数とする。

h(x)=elog h(x) なので,

log h(x) が微分可能ならば

合成関数 elog h(x) も微分可能であり,

したがって h(x) も微分可能であることになる。

f(x),g(x) は共に正の値のみを取る関数として,h(x)=f(x)/g(x) とおくと,

log h(x)=log f(x)-log g(x)

であるが,f(x) と g(x) が微分可能であれば,

合成関数 log f(x) と log g(x) は微分可能であり,

これらの差 log f(x)-log g(x) も微分可能である。

よって h(x) も微分可能であり,

(log h(x)) ' =f ' (x)/f(x)-g ' (x)/g(x)

であって,左辺は h ' (x)/h(x) に等しいから,最終的に両辺に h(x) をかけることにより商の微分公式が得られる。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする