質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

2回答

792閲覧

引き直しの確立を出したい

hamjiko

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2020/04/28 01:30

前提・実現したいこと

x枚の山札の中にy枚の特定のカードが入っている。
無作為に7枚引いたときに特定のカードが1枚以下または6枚以上の場合引き直しする。
引き直しの方法は手札のカードをすべて山札の下に戻し、「戻した枚数-1」を引く。
・デッキ枚数 ・特定のカードの枚数は入力
[出力]
・引き直し0回の確率(%表示で小数第3位四捨五入)
・マリガン1回の確率(%表示で小数第3位四捨五入)
・マリガン2回の確率(%表示で小数第3位四捨五入)
・マリガン3回以上の確率(%表示で小数第3位四捨五入)

発生している問題・エラーメッセージ

プログラミングを始めたばかりの初心者なのですが、このプログラミングの手順が不明瞭で、ただif文やrandを使うことはわかります。 どなたかどういった手順で作っていくのか大まかでも教えていただけますでしょうか。

該当のソースコード

Rubyでやろうと思っています。

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/04/28 01:34 編集

> プログラミングを始めたばかりの初心者なのですが、このプログラミングの手順が不明瞭で、ただif文やrandを使うことはわかります。 なぜ、もっと簡単な課題から始められないのでしょうか。 例えば「7枚引いたときに特定のカードが1枚以下なら引き直しをする。」であれば、ご自分でプログラミングできますか。
hamjiko

2020/04/28 01:43

ご返信ありがとうございます。 初心者には難しいのは承知しています。 ただ課題としてここを目指すように設定されていまして、取り組んでいます。 「7枚引いたときに特定のカードが1枚以下なら引き直しをする。」 のプログラミングも作るのが難しいと思います。
taichi730

2020/04/28 07:31

出題者に質問したほうが良いのでは?
guest

回答2

0

課題正しいですか?
無作為に7枚引いたときに特定のカードが1枚以下または6枚以上の場合引き直しする。
引き直しの方法は手札のカードをすべて山札の下に戻し、「戻した枚数-1」を引く。

手持ちカードの数が 7,6,5,4 と減っていきます。
それでも 「または6枚以上」 ですか?

投稿2020/04/29 05:23

winterboum

総合スコア23347

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

%表示で小数第3位

これを達成するために必要な標本数はざっと384,160,000個
シャッフルのアルゴリズムにもよりますが1回の手札を計算するのにx回rand計算する必要があり
さらにマリガンを考えるとざっと38,400,160,000回くらいrand計算する必要があります。(MTGかつバベル以外を想定)

やれない事はないがrandによって確率を計算するのはちょっと時間がかかりそうですね。


求めたい確率は「組み合わせ」という奴で数学的に求められます。
https://okwave.jp/qa/q9301017.html
https://qiita.com/jkr_2255/items/3c9bc8273da818a39810

投稿2020/04/28 07:37

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問