javaで環境が違っても同じ乱数を出したい。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
Cr
記事: 93
登録日時: 8年前

javaで環境が違っても同じ乱数を出したい。

#1

投稿記事 by Cr » 6年前

今、ネット接続しなくても大丈夫なスマホで人狼というゲームの司会進行をしてくれるアプリを作ろうと考えています。

ゲームの最初に役職を参加者に分からないように割り振る必要があります。
そこで、別チャットで示した数字を使って、どの端末でも同じ乱数が出るようなプログラムをjavaで書きたいです。
C++なら

コード:

      int key;
      cin >> key;
      srand(key);
      for (int i=1; i<=10; i++) {
              cout << rand()%100;
       }
こんな感じになるのでしょうか?
いかんせんjavaが初心者なので困っています…

アバター
海Sea
記事: 102
登録日時: 8年前
住所: 大阪
連絡を取る:

Re: javaで環境が違っても同じ乱数を出したい。

#2

投稿記事 by 海Sea » 6年前

単純にC++のようなrandom関数でいいなら
JAVAは二種類ほど簡単な方法があります
わかりやすいので下記を参照てみてください

http://sasuke.main.jp/ranjava.html

アバター
Cr
記事: 93
登録日時: 8年前

Re: javaで環境が違っても同じ乱数を出したい。

#3

投稿記事 by Cr » 6年前

>海Seaさん
どうもありがとうございます!
さっそく試してみたいと思います。

ISLe
記事: 2645
登録日時: 9年前
連絡を取る:

Re: javaで環境が違っても同じ乱数を出したい。

#4

投稿記事 by ISLe » 6年前

同じ乱数を出すという目的は達せられましたか?

Randomクラスに対して乱数の種(seed)は、
インスタンス生成時、
Random rnd = new Random(seed);
あるいは、
インスタンス生成後、
rnd.setSeed(seed);
のように設定します。

プラットフォームが異なっても同じ乱数列になるかどうかは分からないですけど。

Math#randomは内部でRandomクラスを使ってますがseedを設定する手段がありません。

閉鎖

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