ページ 11

確率の分母を代入する為の変数の命名についての相談です

Posted: 2012年12月06日(木) 20:01
by Eeel
英語の問題というか数学の問題というか、C言語そのものの質問とは少しずれてしまうのですが
「1/3の確率で……」という時の分母にあたる変数名はどのようなものにすれば良いと思いますか?
  • 母数
    誤用らしいです。
    http://ja.wikipedia.org/wiki/%E6%AF%8D%E6%95%B0
    http://note.chiebukuro.yahoo.co.jp/detail/n57059
  • 分母
    時速5kmで30kmの距離を進むときにかかる時間は?
    10/5 = 6、ですがこの分母の5の変数名は例えば speed であって決して denominator(分母) ではないと思うのです。
    という思考で分母だからといって分母という変数名をつけるのには違和感を覚えます。
  • 確率分母
    検索してみたところ、パチスロ用語のようで、あまり普遍的な言葉ではなさそうでした。
  • 全数
    「サイコロを二回振ったとき……」というような場合の 12/36 の 36 は全数と呼んでも良いような気もします。
    しかし約分して 1/3 になった時の 3 はもはや全数ではないように思えます。
と、しっくりこない言葉しか思い浮かびませんでした。
何か良い案がありましたらお願いします。

Re: 確率の分母を代入する為の変数の命名についての相談です

Posted: 2012年12月06日(木) 20:17
by nil
分母ですが、
30(km) / 5(km/h)と
1/3の3と5では全くその数の持つ役割が異なるので例としては不適だと思います。

Re: 確率の分母を代入する為の変数の命名についての相談です

Posted: 2012年12月06日(木) 20:53
by box
ケースバイケースでしょうね。
その場の状況に最もふさわしいと思われる名前を付ければよいと思います。
時速だったら speed_per_hour とか。

Re: 確率の分母を代入する為の変数の命名についての相談です

Posted: 2012年12月06日(木) 23:23
by yukihiro
ratio(割合、比)のinverse(逆数)ということでratioInvというのを、
昔まさにパチスロシミュレータを作った時、
実際使った記憶があります。

まあ分子が1であることが表せてませんが、その程度の妥協はありかと。
でもdenominatorと大して変わらないかな。
ご参考まで。

Re: 確率の分母を代入する為の変数の命名についての相談です

Posted: 2012年12月07日(金) 14:38
by GRAM
確率の話ですよね?一般に分数の話をしたければ、分母はdenominatorというよりほかありません。
全事象をもって確率の分母を表したいのならば、分母の変数名は全事象を表すwhole_eventでいいと思います。

約分しちゃったら、もはや分母とか分子とかそういう話ではなく、
分数全体をもってprobabilityですから分母がどうという話をするのはナンセンスだと思います。

Re: 確率の分母を代入する為の変数の命名についての相談です

Posted: 2012年12月07日(金) 16:01
by yukihiro
ナンセンスは言いすぎです。
何かの割合や確率を人間に見せるとき「1/x」の形で表現したいことはよくあります。
そのxを表す名前は何がふさわしいかという話かと思います。

Re: 確率の分母を代入する為の変数の命名についての相談です

Posted: 2012年12月08日(土) 01:00
by Eeel
みなさん返信ありがとうございます。

分母の項目に関してですが、役割というか、意味に応じた命名をするのが適切なのではないでしょうか、という事です。
speed はその変数が持つ値の意味を現した名前になっています。
denominator はその変数を用いて計算を行うときにどのような位置づけになるかを現したものであって、変数が持つ値の意味を表したものにはなっていません。
そして「速さ」は意味から命名すると speed ですが、計算時の位置づけから命名すると denominator もあり得ます。

コード:

CBullet[n].speed
は解りやすいですが

コード:

CBullet[n].denominator
となるとある程度ソースを読まないと用途がわからないんじゃないかと思います。
速さが常に分母に来るとは限りませんが、それは 1/3 の 3 も同じで

コード:

failureratio = denominator - successratio;
という式を作りたくなる事もあります。
私だけかもしれませんが、変数・関数の名前で表現されている範囲を超えるような使い方は落ち着かないのです。

私自身はyukihiroさんがフォローしてくださったように、おかしな事を言っているつもりは無いのですが
これらはプログラミング特有の限定的な問題ですので、
確率論に精通している方が確率論寄りの視点で見ればナンセンスと思われる事も十分考えられます。
また私の説明が下手で上手く伝えきれなかった部分もあるかもしれません。
box さんが書きました:ケースバイケースでしょうね。
その場の状況に最もふさわしいと思われる名前を付ければよいと思います。
ケースバイケースというのは私の苦手とするところでして、
その一言だけでもう少し柔軟に考えようと思い直す事ができました。
yukihiro さんが書きました:ratio(割合、比)のinverse(逆数)ということでratioInvというのを、
昔まさにパチスロシミュレータを作った時、実際使った記憶があります。
まあ分子が1であることが表せてませんが、その程度の妥協はありかと。
でもdenominatorと大して変わらないかな。
私の感覚ではdenominatorより良いように思います。
比の逆数なので分子が 1 であるという意味もあるように思えるのですが、今回は分子が 1 とは限らないのです。説明不足ですみませんでした。
その変数名の作り方は普段あまりやらないものでしたので、今後の参考にさせて頂きます。

今回は最も意味が近そうな whole_event を使わせて頂く事にしました。
どなたのレスも大変有意義で色々と考える事ができました。
ありがとうございました。