質問: 非常に基本的な質問かもしれませんが、 確率表の計算方法について教えてほしいです。 プログラムの練習としてソーシャルゲームのガチャのような機能を作成しはじめました。 いろいろなサイトを参考にしつつ、見よう見まねで作成して実際にガチャを引くというところまではできました。 次の段階として確率の表記の処理を作成しています。 しかし、肝心の確率の計算方法が上手くあわずに困っています。 プログラムの問題というよりかは算数に近く、お恥ずかしいですが計算方法について教えていただきたく思います。 例えば |ID|レアリティ|重み| |1 | 1 |2000| |2 | 1 |2000| |3 | 1 |2000| |4 | 1 |2000| |5 | 2 |500| |6 | 2 |500| |7 | 2 |500| |8 | 3 |200| |9 | 3 |200| |10| 4 |100| というデータがあった場合にどういった計算を行えばよいのでしょうか? 何を算出したいかといいますと下記の通りです。 1 レアリティごとに確率を出したい レアリティ1:AA % レアリティ2:BB % レアリティ3:CC % レアリティ4:DD % 2 IDごとに確率を出したい ID:1 aa % ID:2 bb % ID:3 cc % \.\.\. ID:10 zz% のような形です。 深く考えすぎているせいか完全に煮詰まってしまいました・・・。 ヒントまででも構いませんので、ご教示いただければと思います。 よろしくお願い致します。
回答: 重みを全部足した数が総数と考えてみるとよいかと思います 上の例だと、重みの全部を足した数 2000+2000+2000+2000+500+500+500+200+200+100=10000 で、そのうちID=1のものが2000出るので、2000/10000=0.2 0.2*100で20%です。 後は端数処理の関係で全部足しても100に戻らない事があるので、そこを気をつければいいかと思います。