🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

2回答

386閲覧

乱数を使って3つの重複なしの数値を出す。しかし、乱数の回数固定

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2019/10/14 07:38

編集2019/10/15 02:23

例えば、0-9の数字の中でランダムに3つの数字を重複なしで出力したい場合
ランダム関数で出した数値と今までに出した数値が同じか調べ、
同じであればもう一度ランダム関数で数値を出し、また比べる。
という処理をすればランダム関数を最低3回使えば3つの数字をランダムに3つの数字を重複なしで出力できます。
しかし、これではランダム関数の使用回数が毎回バラバラになってしまいます。
3回で済むこともあれば、10回チェックし、ランダム関数で新たに数値を出さなければならないこともあります。
そこで質問なのですが、ランダム関数を3回しか使わないという指定をした場合どのようなプログラムになるのでしょうか?
詳しい方いらっしゃいましたら、教えていただけると幸いです。

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

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

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

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

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

Zuishin

2019/10/14 10:08

質問は削除しないでください。回答の一つをベストアンサーに選べばクローズできます。
m.ts10806

2019/10/14 11:40

同じやり方をされても同じ指摘を喰らうだけなのに。ガイドライン無視は迷惑なので質問しないでください。
guest

回答2

0

配列で0-9の数字を用意した上で、「並び順をランダムに入れ替え、先頭3つを取りだせば」良いです。

投稿2019/10/14 08:03

HogeAnimalLover

総合スコア4830

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

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

退会済みユーザー

退会済みユーザー

2019/10/14 08:10

回答いただきありがとうございます。 それも方法の一つだとは思いますが、下のjimbeさんのやり方でやろうと思います。しかし、イマイチよく分かりません。下のやり方で解く場合どのようにすれば良いでしょうか?
guest

0

0~9の10枚のカードからランダムに1枚ずつ抜く感じのプログラムになると思います.

投稿2019/10/14 07:41

jimbe

総合スコア13201

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

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

退会済みユーザー

退会済みユーザー

2019/10/14 07:47

しかし、その場合一度とったカードからは取らないということになりますよね。そのプログラムはどのように書いたら良いのでしょうか?その、「抜く感じ」がよく分かりません。
jimbe

2019/10/14 07:59

以下のイメージです. 乱数で番号の位置の数値を取り出します. 番号: 0123456789 数値: 0123456789 乱数(0-9)で6番が出たとする. →6番="6" 6番以降を前に詰める. 番号: 012345678 数値: 012345789 乱数(0-8)で0番が出たとする. →0番="0" 0番以降を前に詰める 番号: 01234567 数値: 12345789 乱数(0-7)で6番が出たとする. →6番="8" 6番以降を前に詰める 番号: 0123456 数値: 1234579
退会済みユーザー

退会済みユーザー

2019/10/14 08:02

詰めるというやり方をもう少し詳細に教えて頂けますか? 番号から削除するということですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問