[過去ログ] 【初心者】スレを立てる前にココで質問を【Part28】©2ch.net (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
302
(3): 名前は開発中のものです。 [sage] 2017/04/17(月) 11:22:30.73 ID:nMb2jrT5(1/2) AAS
確率についての質問です。
num=0
x=0.8
if(Math.random()<x){ num++ }
とする事でおおよそ80%の確率でnumが1になりますが、xが1以上の場合についてどういう処理が「自然」なのか助言が欲しいです。
x=2.5
t=x
while(t>0){ num++; t-- }
とすると整数部(2)+小数部の確率で+1されますが、0や1が出てきません。
x=0.25
y=10
for(i=0;i<y;i++) { if(Math.random()<x){ num++ } }
num=Math.floor(num/x/y)
とすれば0以上3以下を出す事が出来ますが、試行した所3が殆ど出ません。
確率はそもそも1以上はあり得ないとか、好きにしたらいいとか言われると何も言えないのですが、よろしくお願いします。
303: 名前は開発中のものです。 [sage] 2017/04/17(月) 14:44:39.84 ID:CeybGC4T(1) AAS
>>302
試行で一回を超えて表現することは出来ないから、
1.0以上の場合は、効果値にその確率の値を掛けたものを使う、
みたいにするくらいしか出来ないんじゃない?

ただ、確率として何が自然か、よりもどういう動作にしたいのか、に
合わせることを考えた方がいいと思うけど
305: 名前は開発中のものです。 [sage] 2017/04/17(月) 16:24:30.85 ID:hM9ln6SH(1) AAS
>>302
何をしたいのかが分からない
最初の例でxは確率であって、1より大きいことはない。
1より大きい場合は確率ではないので何か別の仕様とごっちゃになってる
306: 302 [sage] 2017/04/17(月) 21:05:26.61 ID:nMb2jrT5(2/2) AAS
while(t > 0){ if(Math.random()<t){ num++ } t-- }
一応訂正しておきます。

確率としてxが変数なのだから1以上に拡張できるだろうと安易に思ったのですが
結果として期待する値を元に組むべきみたいですね、もう少し練ってみたいと思います
アドバイスありがとうございます。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.027s