• 締切済み

javaの乱数で質問です

100個の配列を準備して各要素に0~9までの乱数を発生させ5の要素がいくつあるか数えて個数を出力するプログラムがわかりません。 教えてください。

  • Java
  • 回答数3
  • ありがとう数0

みんなの回答

回答No.3

確かに Java8 なら簡単ですが、 それ以前のバージョンを使うなら、 こんな感じでしょうか。 http://pastebin.com/Wa1MYkte

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

// java8 System.out.println(IntStream.range(0, 100).map(x->(int)(Math.random()*10)).filter(x->x==5).count());

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

100個の配列を準備して 各要素に0~9までの乱数を発生させ 5の要素がいくつあるか数えて 個数を出力する のうちどれが分からないの?

関連するQ&A

  • javaの乱数生成プログラム-バグを教えてください

    こんにちは。Web上で「重複しない乱数」を作るプログラムをいくつか見まして、どれもこれも何でこんな複雑なステップを踏むのであろう思い、どーだこんなに簡単に作れるじゃん・・・と0-9までの整数で乱数を生成するプログラムを書いてみたんです。これならAPI調べなくたって基本を身につけていれば誰でも書けると・・・けど、生成する乱数の数が100個とか200個とかなら問題ないんですが、例えば9桁の乱数を10000個作るように設定しても7500個くらいしかListに入りません。原因がどこにあるかお教えいただけますでしょうか。なにとぞよろしくお願いします。 import java.util.ArrayList; import java.util.List; public class RandomExec { static int idLength=9; //乱数の桁数を指定 static int elmSize=100; //生成する乱数の個数を指定 static List<String> list = new ArrayList<String>(); //乱数を格納するリスト public static void main(String[] args) { addList(); //生成された乱数を要素に持つリスト list を取得 //要素をひとつずつコンソール出力 for(String s : list){ System.out.println(s); } } //リストに入れるための乱数を生成するメソッド public static String addId(){ int[] id=new int[idLength]; //int配列idを宣言(要素数=乱数の桁数) String s=""; String str; //配列にMath.random()で取得した要素を入れる for(int i=0; i<idLength; i++){ int n=(int)(Math.random()*10); id[i]=n; } //指定した桁数(この場合は9個)の数字から成るString s を得るため //int型配列idの要素をStringに変換し、すべての要素を連結する for(int n : id){ str = String.valueOf(n); s+=str; } return s; //生成されたStringを返す(下のaddList()メソッドに返しています) } //addIdメソッドで作った要素候補をチェックし、重複がなければListに加えるメソッド //List list の要素数が変数elmSizeで指定した乱数の数と同じになるまで繰り返す public static void addList(){ while(list.size()<elmSize){ //addIdメソッドでlistの要素候補strを取得 String str = addId(); //listに候補と同じ文字列を持つ要素が存在しなければlistに加える if(!list.contains(str)) list.add(str); } } }

    • ベストアンサー
    • Java
  • C言語についての質問です><

    0から100までの乱数を発生させ要素20個の整数配列aに乱数を格納し、 その配列を大きい順番に並び替える。 その際もともと格納されていた配列の場所もあわせて 表示するプログラムを示せ。 乱数発生にはsrand関数とrand 関数を使います。 二次元配列を使うこと. プログラムリソースとプログラム解説をつけてほしいです>< 例 number place a[0]=98 3 a[1]=94 19 a[2]=90 1 のようになるようにお願いしますm(_ _)m

  • c言語乱数について

    トランプのシャッフルと同様な操作をコンピュータで行いたい。52枚のトランプを配列に置き換え、1~52の乱数を割り当てる。ただし発生した乱数はすでに割り当て済みの数である場合は、まだ割り当てていない乱数が出るまで繰り返すものとする。 というプログラムをC言語でつくりたいのですがまったくわからないので誰か教えてください。お願いします。

  • 乱数について

    今、あるデータの順番をばらばらにするプログラムを作ろうとしています。  たとえば、a,b,c,dとあったら、d,b,c,aとするように、この時考えられるプログラムは、データの数だけ配列を用意して、乱数で、どのデータを出力させるかを決定し、出力し終わったら、その配列のところに印を立てて、次にくるデータに対して、2重にならないように順次、出力していく方法が考えられるのですが。。。    膨大なデータをこのように、すると、二重になる確立が出力するたびに、高くなっていって、なかなか終わらなくなってしまいます。  そこで、残ったデータから、ランダムに選び出すアルゴリズムまたは、関数はないでしょうか?よろしくお願いします。

  • 乱数について

    こんばんは。 何度も申し訳ありませんが、今回は乱数について教えてください。 LinuxでCを勉強しているんですが、 randで乱数を発生させることはできたんですが、 そのプログラムを何度実行させても 出てきた乱数は同じ値なんです。 プログラム内で例えば10こ乱数を発生させたとすると 違うものが出ます。 しかし、もう一度そのプログラムをはしらせると 前回と全く同じ並びで同じ数が出るのはどうしてでしょうか? 言ってる意味わかっていただけましたでしょうか? 宜しくお願いします。

  • 配列の乱数と平均値、個数表示

    0から9までの整数乱数を100個発生させ、100個の乱数の平均値も合わせて出力し、0から9それぞれの個数を数えるための変数に必ず配列を用いるプログラムを下記に作成したんですけども、出現個数カウント用の変数を10個用意していけないという条件で出現個数カウント用の配列を用意し、 結果が、 7 7 1 7 3 9 1 2 5 0 0 3 6 8 4 9 1 4 2 4 8 2 4 2 6 0 9 3 5 8 6 6 6 2 0 9 5 2 6 9 5 0 5 3 9 2 6 7 0 6 1 4 1 1 1 9 7 0 5 0 6 9 7 4 9 9 7 5 3 6 1 9 6 6 6 7 1 2 6 1 4 9 1 3 1 3 7 0 0 8 1 9 3 2 9 4 4 5 4 0 0 *********** 11 1 ************* 13 2 ********* 9 3 ******** 8 4 ********** 10 5 ******** 8 6 ************** 14 7 ********* 9 8 **** 4 9 ************** 14 平均 4.4 に表示されるプログラムがわかりません、Java初心者なので作ったプログラムのどこを直せばいいのか教えてください。 class Kadai06_5 { public static void main(String args[]) { int n=10; int a[] = new int[n]; int i; int sum=0; double avg=0; for(i=0; i<100; i++){ System.out.print((int)(Math.random()*10)); sum +=(int)(Math.random()*10); } for(i=0; i<n; i++){ System.out.println(); } avg=(double)sum/100; System.out.println("平均"+avg); } }

    • ベストアンサー
    • Java
  • 10個の要素数を持つ配列に0~99までの乱数を挿入し、出力例のように配

    10個の要素数を持つ配列に0~99までの乱数を挿入し、出力例のように配列の前後を入れ替えて出力しなさい.ただし、シード値は任意とする. [出力例] before 23 52 71 2 56 34 7 23 51 93 after 93 51 23 7 34 56 2 71 52 23 この問題がどうしても解けません・・・。 どなたか教えてください! よろしくお願いします!! ちなみに、言語はJavaです

  • 重複しない乱数の生成

    他の質問での回答に対してもう少し具体的に知りたいと思って投稿しました。 自分はいわゆる日曜プログラマです。 勉強のつもりでOKWebのコンピュータ関連でいろいろ回答してます。 (未熟者なのでとんちんかんなのが多いですが) で次の質問に回答しました。内容は「重複しない乱数を発生させる方法」です。 http://okweb.jp/kotaeru.php3?q=1239644 私が回答したのは#10です。私の考えは 1. 最初に配列に重複しない値を入れ(1から100を順番に) 2. 2要素の値を入れ換える 3. 2を任意の回数繰り返す 4. 配列の先頭から値を取り出す という考えです。 が、そのあと#12の回答があり、それを読むと私の方法ではマズイようです。 「どうしてマズイのか」ということはなんとなくわかった(ような)気がするんですが、 では「具体的にどうすべきなのか」が知りたいです。 違う方法として自分ではこう考えました。 上記1の配列(これを配列Aとする)と同じ要素数(ここでは100個)の配列Bを作って 1. 0~(配列Aの要素数 - 1)の範囲で乱数を発生させる -> 得られた数値をnとする 2. 配列A[n]の値を配列Bに入れる -> 最初は配列B[0]に入れる 3. 配列A[n]を削除 -> 要素数が1個減る 以下これを繰り返し、配列B[99]まで入れて終了。 過去の質問を覗いてみましたが、いろいろな方法があってどれがいいのか迷ってきま した。どちらかというと具体的なソースではなく考え方を教えてください。 よろしくお願いします。

  • 配列と乱数を使ったプログラム

    配列と乱数を使ったプログラムについて 今年からプログラミングについて勉強する事になったのですが、 配列と乱数を上手く使うことができません。やりたいと思っていることが おみくじのプログラムで 大吉 中吉 小吉 という3つの配列からウィンドウ上にランダムで 一つ表示するというプログラムです。 【おみくじの結果は *** です。】 ←***の部分がランダムに配列から表示される結果です。(分かりづらなかったら、ごめんなさい) 病欠で2週ほど授業に出席する事が出来なかったので、配列と乱数についてよく分かりません。 PENというソフトで学習しているので、出来るならPENにそって教えてもらえると、嬉しいです。 宜しくお願いしますm(_ _)m

  • M系列の乱数の検定

    多ビットのシフトレジスタをいくつか使って,M系列乱数を発生させるプログラム(verilog)を作りました。その結果、乱数の出力値が8~10桁です。そしてこの乱数の検定をするためにまずは度数検定をしたいのです。もしこの8~10桁の数字を1桁ずつばらばらにできれば、エクセルを使って、0~9の数字が等頻度で出ているか調べることができるのですが、そんなことはできないのでしょうか?? 乱数についてはこの2ヶ月で色々調べて、何も知らない状態から、やっと乱数発生までこぎつけました。これがまだ使い物になるとは思いませんが、とりあえずは検定をしたいので、ご指導よろしくお願いします。

専門家に質問してみよう