0

乱数の配列を作成する単純な Java プログラムがあります。rJava を使用してこのプログラムを呼び出し、R オブジェクトを作成しています。Rで乱数を作成する方法を知っています...複雑なJavaプログラムの結果を正確に再現しようとしています。これには、同じ乱数を使用する必要があります。ここにJavaがあります:

import java.util.Random;
public class rJava
{
public static void main(String[] args)
    {
    createRan();
    }

public static double[] createRan()
    {
    int numSims = 100000;
    int m_RandomSeed = 1234567;
    Random m_Rnd  = new Random(m_RandomSeed);
    double[] randoms = new double[100000];

    for(int i=0; i < numSims; i++)
        {
        randoms[i] = m_Rnd.nextDouble();
        }
    return randoms;
    }
}

rJavaは私にとってはうまく機能しているようです... Rで次のコマンドを使用すると、100000の乱数を持つ「rans」というオブジェクトが作成されます。

library(rJava)
.jinit()
obj <- .jnew("rJava")
rans <- .jcall(obj, "[D", "createRan")

私の問題は、テスト目的で配列のサイズを、100,000 ではなく 10 個の乱数など、より管理しやすいサイズに変更したことです。rJava.java を保存して再コンパイルし、上記の R コードを再実行しました。それでも 100,000 個の数字の配列が作成されました。コンピューターを再起動して再試行しましたが、それでも 100,000 です。最終的には、パラメータを Java コードに渡して、生成する乱数の数を選択したいと考えていますが、最初にここで何が起こっているのかを理解したいと考えています。私はJavaについてほとんど知りません.rJava.javaの初期状態が保存され、呼び出されている場所はありますか? 私が言ったように、クラスファイルを再コンパイルしたので、「元の」ファイルは上書きされません。

ありがとう

4

0 に答える 0