エンジニアとしての満足感をどこに感じるか
株取引問題、解答編

ビルゲイツの面接試験―株取引編

060716_114316 先日私が出した「亀の子算」に刺激されてUIEJのメンバーたちが幾つか問題を作ってくれたのだが、そこに一つとても面白いものがあったので、まずはそれを紹介する。

 棒人間君が図のような(リンク先にある図のこと)魔の7段階段の5段目にいます。棒人間君は毎回コインを投げて、表が出れば上に一段登り、裏が出れば下に一段下がります。7段目にたどり着けばクリア、生きて帰れます。逆に1段目まで降りてしまったらゲームオーバー、死にます。さて、この棒人間君が生還できる確率は? もちろんコインの裏表は1/2の確率で等しく出るものとし、階段の途中でやめることはできないものとします。(ビルゲイツの面接試験ネタに便乗より引用)。

 この問題には結構苦労してしまった。「暗算で解けるに違いない」と思った私は、夜になって布団に入ってから解こうとしたのだが、どうしても解けずに寝入ってしまったのだ。そこで翌日にノートとペンを持って昼食に行ってやっと解いたのだ。無限級数を使って解く事も可能なのだが、あえてそれを使わずに中学生程度の数学を使って解くところがミソだ。ぜひとも試していただきたい。

 そして、あまりにこの問題が面白いので、発展問題を作ってみた。

 必ず1日に1ドル上下する株があります(つまり、必ず1ドル上がるか、1ドル下がるかする)。その会社の業績や、過去の株価の推移からは一切未来のことは予想できないと仮定し、ある一日を見たときには、1ドル上がる確率も1ドル下がる確率もまったく同じだと仮定します。ある人が、その会社の株を現在の価格Nドル(たとえば83ドル)で何株か株買い、証券会社の人に、「もしこの会社の株が上昇してPドル(たとえば120ドル)になったらその日に売って。でも、もし逆にQドル(たとえば40ドル)まで下がったらやはりその日に売って。」と指示を出したとします(当然だが、P>N>Q>0)。この条件のまま、売れるまで(つまり、この例で言えば、120ドルに上がるか40ドルに下がるまで)株を保有すると仮定したとき、株の売却金額の期待値は買った時の値段と同じNドル(この例では83ドル)になることを数学的に証明してください。ただし、金利、配当、売買手数料、一ドル未満の株価の変動などは無視して良いこととします。

 亀の子算と同じく、無限級数など使わずに、中学生で教わる程度の数学だけを使って解く事ができる問題ではあるが、かなり難しいので心して取り掛かるように。

Comments

Hiroyuki Shinnou

これはランダムウォークの破産問題といわれる問題ですね。
A君が5万円、B 君が2万円持っていて、1回の勝負で負けた方が
勝った方に1万円払うというゲームでA君が破産する確率です。
勝敗の確率が1/2 のときは簡単な数値になりますが、
一般の 1/2 でない値のときは式が複雑になります。

satoshi

 ちゃんとした名前が付いている統計学上の問題だったんですね。知りませんでした。ご指摘ありがとうございます。

moo

問題設定についてですが、株価が0になった次の日はどうなるのでしょうか?
「負の株価」を考えないと損失には下限があり、利益には上限がない、と
いうことになってしまいますが.....

satoshi

 株主の責任は有限責任なので、負の株価は考えられず、下限は0になります。ただし、この問題の場合、自分で設定する下限Qは0より大きく、かつ、上限も自分で設定するため、常に下限と上限の両方がある状態での期待値の計算となります。ちなみに、Q>0であることを明確にするために、表現を少し変えました。

keis

PとNの間でQを動かすと、Pで売却できる確率が移動距離に比例して変動するところがポイントですね。

Qドルで買った株がPドルになる確率をProv(Q,P)、Nドルになる確率をProv(Q,N)すれば、売却利益の期待値Eは次のようになります。

E = (P-Q)・Prov(Q,P) + (N-Q)・Prov(Q,N)

E=0と置けば、

(P-Q)・Prov(Q,P) + (N-Q)・Prov(Q,N) = 0
(P-Q)・Prov(Q,P) = -(N-Q)・Prov(Q,N)
Prov(Q,P)/Prov(Q,N) = (Q-N)/(P-Q) …式(1)

式(1)を証明すれば良いわけです。
さて、PとNの間の任意の価格xにおいて、Prov(x,P)は以下のように計算できます。

Prov(x,P) = 1/2・Prov(x-1,P)+1/2・Prov(x+1,P)

この式を変形すると、Provの差分に関する式を作ることができます。

1/2・Prov(x,P)+1/2・Prov(x,P) = 1/2・Prov(x-1,P)+1/2・Prov(x+1,P)
Prov(x,P)+Prov(x,P) = Prov(x-1,P)+Prov(x+1,P)

Prov(x+1,P)-Prov(x,P)= Prov(x,P)-Prov(x-1,P)

この式によりProv(x,P)関数は、xに関して線形(1次)であることがわかります。また、Prov(N,P)=0、Prov(P,P)=1は自明です。
したがって、
Prov(x,P)= (x- N)/(P-N) …式(2)

また、Prov(x,P)+Prov(x,N)=1 …式(3)

x=Qとして式(2)(3)を式(1)の左辺に適用すると、

Prov(Q,P)/Prov(Q,N) = Prov(Q,P)/(1 - Prov(Q,P))
= 1/{1/(Prov(Q,P)) - 1}
= 1/{(P-N)/(Q-N) -1}
= (Q-N)/{(P-N)-(Q-N)}
= (Q-N)/(P-Q)
以上で、E=0が証明できました。

かわうそ

こんにちは。性懲りも無くまたやってきました^^;。
「棒人間君」の問題が先方blogに書いた対称性で解けた!と仮定すると、Nから2^n上がった(下がった)値に到達する確率は1/2^(n+1)であることがわかりました。
その上がる(下がる)差額の期待値は、(2^n)*(1/2^(n+1))=1/2ドル、でnによらない。
ではNから2^n + 2^(n-1)上がった(下がった)値に到達する場合の期待値はどうなるか。ここから値が2^(n+1)に離れていく確率も2^nに戻ってくる確率も1/2であると考えられ、どちらの期待値も1/2ドルであるからこの値での期待値も1/2ドル。
これを繰り返すと、どんなPとQをどんな値に設定してもその期待値は1/2ドルの得と損、という結論になるような。
関係ないですけれど、株は「これから上がる!」と予想したら、今どんな高い値段だったとしても「買い」、「これから下がる!」と予想したら、今どんな安い値段だったとしても「売り」をしなければいけないんですが、人間の「もったいない」精神が邪魔をしてなかなかそうできませんね^^。

The comments to this entry are closed.