確率を選択するプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
hduddfw

確率を選択するプログラム

#1

投稿記事 by hduddfw » 2年前

プログラミングは素人です。C言語でサイコロの1~5の目が出る確率が1/10、6の出る目が確率1/2と与え、10回サイコロを振ったとき、その出目の1~10回の結果を表示するプログラムを教えてください。
⇊出力結果の例










アバター
みけCAT
記事: 6246
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: 確率を選択するプログラム

#2

投稿記事 by みけCAT » 2年前

フォーラムルールをお読みください。
(これが課題かはわかりませんが)課題の丸投げは禁止です。
また、参考として過去ログに似た質問がありますね。
サイコロの確率を指定 • C言語交流フォーラム ~ mixC++ ~
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
purin52002
記事: 235
登録日時: 2年前
連絡を取る:

Re: 確率を選択するプログラム

#3

投稿記事 by purin52002 » 2年前

おそらく乱数をつかったプログラムになると思います。
  1. 乱数を出力できる
  2. 乱数の範囲を指定して出力できる
  3. 1/10の確率で数字を一つ出力できる
  4. 1~10の数字をそれぞれ1/10の確率で出力できる
  5. 1~5の数字をそれぞれ1/10の確率で、6を5/10の確率で出力できる
手順としてはこんな感じかと

► スポイラーを表示
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^

かずま

Re: 確率を選択するプログラム

#4

投稿記事 by かずま » 2年前

purin52002 さんが書きました:

コード:

    return min((((rand() % 10*q ) / q ) + 1 ), 6 ) ;
(rand() % 10*q ) / q と書くのは、なぜですか?
rand() % 10 ではいけないんですか?

rand() % 10 で、0~9 が同じ確率にはならない
という問題の回避策でもないようですし。

アバター
purin52002
記事: 235
登録日時: 2年前
連絡を取る:

Re: 確率を選択するプログラム

#5

投稿記事 by purin52002 » 2年前

母数を大きくすれば確率の偏りが小さくなるんじゃないかという苦肉の策でございます^^;
他の質問者様のトピで質問するのもおかしいですが確率の偏りのない乱数の出力方法ってあるんでしょうか?

「追記:20171106]
以下のブログで詳しく説明されていました^^;
http://d.hatena.ne.jp/takeda25/20130818/1376837093
言われてみれば納得の事実ですね^^;
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^

返信

“C言語何でも質問掲示板” へ戻る