10

私のプロジェクトでは、ランダムな値を作成するために JOptionPane を使用し、Math.Random を使用しない基本的な数字当てゲームを作成する必要があります。これをどのように行うつもりですか?乱数発生器以外はすべて完了しました。ありがとう!

4

4 に答える 4

15

シンプルな乱数発生器のコードは次のとおりです。

public class SimpleRandom {
/**
 * Test code
 */
public static void main(String[] args) {
    SimpleRandom rand = new SimpleRandom(10);
    for (int i = 0; i < 25; i++) {
        System.out.println(rand.nextInt());
    }

}

private int max;
private int last;

// constructor that takes the max int
public SimpleRandom(int max){
    this.max = max;
    last = (int) (System.currentTimeMillis() % max);
}

// Note that the result can not be bigger then 32749
public int nextInt(){
    last = (last * 32719 + 3) % 32749;
    return last % max;
}
}

上記のコードは「線形合同法生成器 (LCG)」です。ここでどのように機能するかについての適切な説明を見つけることができます。

免責事項:

上記のコードは、研究目的でのみ使用するように設計されており、在庫の Random または SecureRandom の代わりとして使用することはできません。

于 2012-11-18T20:20:45.867 に答える
5

JavaScript で Middle-square メソッドを使用します。

var _seed = 1234;
function middleSquare(seed){
    _seed = (seed)?seed:_seed;
    var sq = (_seed * _seed) + '';
    _seed = parseInt(sq.substring(0,4));
    return parseFloat('0.' + _seed);
}
于 2015-07-30T19:31:56.337 に答える
1

Math.Random が気に入らない場合は、独自のRandomオブジェクトを作成できます。

輸入:

import java.util.Random;

コード:

Random rand = new Random();
int value = rand.nextInt();

int の代わりに他の型が必要な場合、Random は boolean、double、float、long、byte のメソッドを提供します。

于 2012-11-18T17:31:06.337 に答える
0

java.security.SecureRandomを使用できます。エントロピーが優れています。

また、本Data Structures and Algorithm Analysis in Javaのコードを次に示します。java.util.Random と同じアルゴリズムを使用します。

于 2012-11-18T18:16:47.490 に答える