乱数の配列を作成する単純な 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の初期状態が保存され、呼び出されている場所はありますか? 私が言ったように、クラスファイルを再コンパイルしたので、「元の」ファイルは上書きされません。
ありがとう