邪道な答え方

isologue -by 磯崎哲也事務所 Tetsuya Isozaki & Associates: 一級数理フィギュア士試験問題
問2.99%の確率で10体すべてをそろえるためには、何個 大人買いをすればいいですか?

よっしゃ数学の問題か、がんばるぞっ


う。できん。
モデル化は簡単にできるんだけどなー。確率の式が・・・あうー。

(ぷちっ)

とやっ必殺モンテカルロシミュレーション!
c0041583_1429851.gif


答え:約60個ちょい。

ふ。数学的に正しいことよりも実際に「求められる」ことが大事なのさ。
大人って汚いとかゆーな。




テキストファイルに以下のコードを書いて拡張子を「js」にして実行すればresult.csvファイルができます。

// フィギュアの種類
var KINDS = 10;
// 確率を出すためのシミュレーション回数
var COUNT = 1000;
main();
//
function Estimator() {
// 成功回数
this.success = 0;

// count回大人買いをして成功確率を求める
this.estimate = function(count, n) {
this.success = 0;
var sim = new Simulator();
for (var i = count; i > 0; i--) {
if (sim.simulate(n)) {
this.success++;
}
}
}

// 大人買い試行のシミュレーター
function Simulator() {
// まだ手に入れてない種類の数
this.rest = KINDS;
// 1つ買う。
this.simulateOne = function() {
var rand = Math.floor(Math.random() * KINDS); // 0 ~ 9の値を返す
if (rand < this.rest) {
this.rest--;
}
}
// n個買う。
// 10種類全部集まった場合trueを返す。
this.simulate = function(n) {
this.rest = KINDS;
for (var i = n; i > 0; i--) {
this.simulateOne();
if (this.rest == 0) {
return true;
}
}
return false;
}
}

}


function main() {
var fs = WScript.CreateObject("Scripting.FileSystemObject");
var est = new Estimator();
var fout = fs.OpenTextFile("result.csv", 2, true);
fout.Write("大人買い個数,成功率(%),試行回数\n");
for (var i = 1; i <= 100; i++) {
est.estimate(COUNT, i);
fout.Write("" + i + "," + (est.success / COUNT * 100) + "," + COUNT + "\n");
}
fout.Close();
}

[PR]
by tockri | 2005-11-24 14:31 | └ 問題集
移転しました。
by tockri
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
最新のトラックバック
[media][gove..
from bewaad institu..
甘やかされた男たち
from とっくりばー
~が下手
from たのしい検索・ゆかいな検索
例えバトン
from ひまわりてんびんへの道
例えバトン
from 明日は明日のホラを吹く-To..
リンク
ライセンス

クリエイティブ・コモンズ・ライセンス

このブログのテキストおよび画像は、クリエイティブ・コモンズ・ライセンスの下でライセンスされています。




検索
ファン
ブログジャンル
画像一覧