• ベストアンサー

確率の判定方法が分かりません

BlurFiltanの回答

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.4

他の方と同じような違うような...。 Math.random() で得られる乱数の数値は 0以上1未満の数(0 <= 数値 < 1)です。 乱数の数値は 0以上1未満の数 なのですから 例えば  100% の確率で「当たった」を出したい場合    →Math.random() で乱数を得て      乱数が 1 未満であれば「当たった」を出す  90% の確率で「当たった」を出したい場合    →Math.random() で乱数を得て      乱数が 0.9 未満であれば「当たった」を出す  80% の確率で「当たった」を出したい場合    →Math.random() で乱数を得て      乱数が 0.8 未満であれば「当たった」を出す   …           …  10% の確率で「当たった」を出したい場合    →Math.random() で乱数を得て      乱数が 0.1 未満であれば「当たった」を出す  0.5% の確率で「当たった」を出したい場合    →Math.random() で乱数を得て      乱数が 0.005 未満であれば「当たった」を出す  0% の確率で「当たった」を出したい場合    →Math.random() で乱数を得て      乱数が 0 未満であれば「当たった」を出す という考え方(そういうルール)で行けば良いと思います。 つまり  X% の確率で「当たった」を出したい場合    →Math.random() で乱数を得て      乱数が X/100 未満であれば「当たった」を出す というルールにすれば良いのでは? ということです(↓図参照)。 例として 『戻り値として「当たった」または「外れた」という文字列を返す関数』 を作り それを使うと次のようになります。 ----------------------- //当たり外れを返す関数 answerHitOrBlank の定義 function answerHitOrBlank(num:Number):String { // //変数 rnd に 0以上1未満 の乱数を代入 var rnd:Number = Math.random(); // //乱数 rnd が引数 num の100分の1未満であれば if (rnd < num/100) { // 「当たった」という文字列を返す return "当たった"; //それ以外は } else { // 「外れた」という文字列を返す return "外れた"; } } var rate:Number = 0.5;//百分率 //変数 str に「当たった」or「外れた」の文字列を取得 var str:String = answerHitOrBlank(rate); //取得した文字列を出力 (→ムービープレビューで確認) trace(str); ----------------------- ↑たまたま ActionScript 2.0 でも 3.0 でも共通で使えます。   (これは "たまたま" です。) もし ActionScript 2.0 でしたら 最後の2行を次のように変更すれば検証しやすいかもしれません。 this.onEnterFrame = function():Void{ //変数 str に「当たった」or「外れた」の文字列を取得 var str:String = answerHitOrBlank(rate); //取得した文字列を出力 (→ムービープレビューで確認) trace(str); };

関連するQ&A

  • 数字の分割方法について

    お世話になります。 変数$numに1~16までの数字をランダムに区切らずに代入した時、 この変数$numの値を1つずつ取り出す関数、もしくは処理方法はございますでしょうか?? ■例■ $num = 12378910; $Num = ホニャララ関数($num); echo $Num[6] "10" もしお分かりになる方がおられましたら、 ご教授をお願い申し上げます。

    • 締切済み
    • PHP
  • 簡単な当たり判定作りたい

    環境FLASH MX  ボタンオンでスタート、もう一回押すと画面上ハズレ、又は当たり表示という簡単な判定機を作りたいです。 プログラムの確率は1/10とします。ただし、完全確率方式でハズレをいったんもとに戻す。またルーレットのように回るような抽選でなく ランダム式がよいです。 ぜひ、アドバイスおねがいします!

    • ベストアンサー
    • Flash
  • 中学校数学での確率問題への解答方法で、百分率表記を認めるかどうかで少し

    中学校数学での確率問題への解答方法で、百分率表記を認めるかどうかで少しもめています。 例えば「コインを1回投げた時に表が出る確率を求めなさい」という問題に対する答えとして  (1) 1/2  (2) 50% と二通りの答え方があります。 (1)が正解なのはわかりますが, (2)に関しては正解とするか不正解とするか判断がつきません。 (2)は正解か不正解か、現在の数学教育上、どちらなのでしょうか? また、その理由についてもご教授願えたらと思います。 よろしくお願い致します。

  • 確率が重複する場合の計算方法

    調べればわかると思ったのですが、 どういうキーワードで検索すればいいかがわからず質問する事にしました。 加算ではなく複数判定がある確率の計算の方法がわかりません。 具体的には、 20%、30%、40%で連続して確率が判定され、最終的にいくつ残るかという計算の事です。 1回目の判定で100%-20%=80% 2回目の判定で80%-30%=50% 3回目の判定で50%-40%=10%・・・? とは単純にならない気がするのですが、 1回目の判定で80% 2回目で80の30%だから80*0.3=24だから80-24=56% 3回目の判定で56の40%だから56*0.4=22.4だから56-22=34%(小数点切り捨てで) となるんだと思います。 これってもっと簡単に計算出来ないものなんでしょうか? 質問する側が理解していないので曖昧な感じになってしまってすみません。

  • 外部テキストの値を得るには?

    フラッシュ初心者&質問するのが初めてなので うまく伝わるかどうか心配ですがよろしくお願いいたします。 外部テキストnum.txtにはstr=5という記述があります。 このnum.txtを取り込んで、 5という数値をflash側で変数aaaに代入しました。 --------------------------- var vars = new LoadVars(); vars.load("num.txt"); vars.onLoad = function(num){ if(num){ aaa= vars.str; trace(aaa); } } --------------------------- この場合、ちゃんと5と出力されます。 しかしこの関数内のaaaという変数を他でも利用したいのです。 (例えばvar menu_num:Number = aaa;というように) 単純に下のように記述すると --------------------------- var vars = new LoadVars(); vars.load("num.txt"); vars.onLoad = function(num){ if(num){ aaa= vars.str; } } var menu_num:Number = aaa; trace(menu_num); --------------------------- undefinedが出力されます。 この時にちゃんと5と出力させるにはどうしたらいいのでしょうか。 いろいろグローバル変数など勉強しましたがうまくいきません。 ちなみに外部テキストnum.txtのstr=5というのは、 5という数字のみでもかまいません。 とにかくテキストから数値を取り出す方法を考えています。 ご回答お願いいたします。

    • ベストアンサー
    • Flash
  • jQueryのCSSで値に変数を使う方法

    jQueryでCSSを設定する際、 $("div").css("プロパティ","値"); とすると思いますが、この値の部分に変数を利用することはできないのでしょうか。 何がしたいかというと、for文の中で乱数を発生させ、それを値として使いたいのです。 for(i=0; i<10; i++){ var num = Math.floor(Math.random()*100); $("div:eq(i)").css("width",num); } このように書いてみましたが駄目でした。 値に変数を使う方法はありませんでしょうか。 できない場合、このような方法(CSSの値に乱数を使う)を実現できる方法はありませんでしょうか。

  • パチンコの確率について

    確率が盤面に書いてますが、確率1/100とした場合、 全台の内の約7割以上で初当たり確率が1/150~1/200に落ち着きます。(等価の店) かと思えば、換金率が半分の店では、1/100を大きく下回ったり上回ったりとランダムで大ハマリも少ないです。 更には、土日は稼働率が上がるので、総回転数が増えるにつれて当たり数も増えるのが普通と思いますが、必ず逆で初当たり確率は大幅に悪くなります。 このことから、確率を変更出来ることは確実と推測できます。 法的に免れる設定変更方法とかあるんでしょうか?教えていただきたいです。

  • 1回も出ないときの確率

    箱にたくさんの白いボールが入っており、少しだけ赤いボールが入っているとします。 この箱からランダムに1つボールを取り出し、色を記録し、取り出したボールを戻す操作を繰り返して行います。 このとき、1回も赤いボールが出なかった場合の、赤いボールが入っている確率を求めたいです。 例えば、危険率5%とか1%(あるいは0.1%)で推定するにはどうしたらよいでしょうか。

  • コンストラクタでvar ?

    javascriptのコンストラクタについて。 下記のコードで、変数を2つ宣言しています(★)が、 下部のfor文で、その変数名を引数のstr,numにすれば、★での宣言は不要ですか? 宣言しとくと何かメリットがあるのでしょうか? var Repeater = function(str, num){ var string = str, //★ number = num;     //★ this.repeat = function (){ var i, result = ""; for(i = 0; i < number; i++ ) { result += string; } return result; }; }; new Repeater("abc", 3).repeat(); あるサイトから引用

  • 可変変数出力方法

    以下のプログラムで ========================== <html> <title>variable_variable</title> <body> <?   $number=1;   $var_1="one"; $var_2="two"; if($number==1) { $output="var_1"; } else if($number==2) { $output="var_2"; } print"$$output";//可変変数A print($$output);//可変変数B ?> </body> </html> ==========================   print"$$output";//可変変数A print($$output);//可変変数B 可変変数Aは$var_1 可変変数Bはone と出力されます。 どちらも内容は同じモノなのですが。 普段出力方法は print""; という方法を使用しているのですが、 可変変数には print(); という方法を取らないとダメなのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP