2013-12-19

http://anond.hatelabo.jp/20131219223049

別に読み間違えても恥ずかしく無いだろこんなクソコード

普通にif文とカウンタ使って

experiment1 = function(max) {

iter = 0

freq = rep(0, 6)

count = 0

while(iter < max) {

dice1 = rdice(1)

dice2 = rdice(1)

if (dice1 == 6 || dice2 == 6) {

freq[dice1] = freq[dice1] + 1

freq[dice2] = freq[dice2] + 1

iter = iter + 1

if (dice1 == 6 && dice2 == 6) count++

}

}

freq[6] = count

freq / max

}

とでも書けばいいのに。

配列インデックスダイスの値がごちゃまぜになってるだけでもクソなのに、さらに小賢しい工夫までつけて、とにかくクソ。

  • http://anond.hatelabo.jp/20131219194740

    ごめん、R知らないからなんとなくでしか読み取れないけど、 experiment2の方は、単位毎回、 「1回サイコロを投げ、それが6だった時に限り2回目の試行を行い、それがNである確率」 という...

    • http://anond.hatelabo.jp/20131219200626

      2個のサイコロを同時に振り、どちらかが6だった時をカウントしていく。 カウントの値は以下のように増やしている。 freq[dice1] = freq[dice1] + 1 freq[dice2] = freq[dice2] + 1 freq[6] = freq[6] - 1 dice...

      • http://anond.hatelabo.jp/20131219201728

        いや、そこは理解してるんだけど。。。 experiment1 = function(max) { iter = 0 freq = rep(0, 6) while(iter < max) { dice1 = rdice(1) dice2 = rdice(1) if (dice1 == 6 || dice2 == 6) { freq[dice1] = freq...

        • http://anond.hatelabo.jp/20131219204623

          この試行は両方が6だった場合に限りカウントされてく(iterが増える)訳で、 つまりはカウントされた分はすべて両方6の場合なわけで。 これが間違い。||は論理和なので(dice1 == 6 || dice2 =...

記事への反応(ブックマークコメント)

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん