- 締切済み
プログラムの学習について
プログラムの質問おねがいします 解答と、この問題を理解するのに必要な知識を得られるHPや また、正直何のプログラムを使っているのか分からなくて・・・ プログラム名も教えていただけますか? よろしくお願いします ・Aさんはサッカーのチームを1つ所有している そのチームは毎月よそのチームと試合をする チームの勝率は1/3 負ける確率は1/2 引き分けは1/6 貯金2、借金2になればそのチームを他の人に譲ることにする (貯金2とは、勝数-負数=2のこと、借金はその逆) 何ヵ月後に貯金がいくつあるかのプログラムをある言語を用い書いた st[0]=(0,0,1,0,0); (#st[0]は、初期状態をあらわす確率ベクトルである#) 1 0 0 0 0 1/2 1/6 1/3 0 0 0 1/2 1/6 1/3 0 =tp 0 0 1/2 1/6 1/3 0 0 0 0 1 st[k]=st[0]*MatrixFunctionX[tp,k]; (#ここで*はベクトルと行列の積を表す#) (#st[k]はkヵ月後の確率である#) (#MatrixFunctionX[tp,k]は、この言語にすでに用意されている関数で(ア)を取る#) (#この関数の意味は行列tpの(イ)である#) [問1]アーイの空欄を埋めよ [問2]3ヵ月後にどの状態にいるかst[3]を求めよ [問3]同様に2年後にはどの状態にいるかst[24]を求めよ
- みんなの回答 (2)
- 専門家の回答
みんなの回答
プログラムの問題というよりは確率行列の問題ではないかと思います。 http://markun.cs.shinshu-u.ac.jp/learn/probability/i_04-01-01.html http://markun.cs.shinshu-u.ac.jp/learn/probability/i_04-01-04.html の前後が参考になるかも知れません。 おそらくですが、状態st[0] = (0, 0, 1, 0, 0)というのは、 左から、貯金が-2, -1, 0, +1, +2 の確率をあらわしているのだと思います。初期状態では貸し借り0の状態が1 (=100%)で他は0。 1ヶ月後には、st[1] = (0, 1/2, 1/6, 1/3, 0) に、 2ヶ月後には、st[2] = (1/2*1/2, (1/2*1/3)+(1/6*1/6)+(1/2*1/3), (1/6*1/3)+(1/3*1/6), 1/3*1/3)と遷移していくものと思われます。 注意しなければならないのは、-2または+2になったらチームを譲ってしまうので、-2と+2は「アガリ」で、そこから別の状態には遷移しないということです。これは行列tpの一番上と下の行を見るとわかります。 というのでヒントになっているでしょうか?
- ushioni
- ベストアンサー率24% (14/58)
「プログラム名」じゃなくて「言語名」ですよね。 で、この問題の場合、言語は仮想的なものだと思われるので、 特に、これ、というものではないようです。 どちらかというと数学の問題じゃないですかね。 問題をよく理解してないので間違ってるかもしれませんが、 MatrixFunctionX[tp,k]はtpをk回掛けたものでしょうか。 問2は力技、問3は規則性を見つけて計算、ってところでしょうか。
お礼
ありがとうございます 力技で解いてたんですが、問3になるとどうも歯が立たなくて・・・ 仮想的な言語ですか、なにかそういう言語があると思っていました。 本当にありがとうございました
お礼
ありがとうございます 条件付確率行列ですね 確率行列の勉強をしたいと思います 助かりました、どうもです