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 中使用以下命令,并创建了一个名为“rans”的对象,其中包含 100000 个随机数。

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

我的问题是我为了测试目的而将数组的大小更改为更易于管理的东西,例如 10 个随机数而不是 100,000 个。我保存并重新编译了 rJava.java,并重新运行了上面的 R 代码。它仍然创建了一个包含 100,000 个数字的数组。我重新启动计算机并再次尝试……仍然是 100,000。我最终想将一个参数传递给 java 代码以选择要生成的随机数的数量,但想先了解这里发生了什么。我对Java知之甚少,是否有某个地方存储了 rJava.java 的初始状态并从中调用?正如我所说,我已经重新编译了类文件,所以我不会覆盖“原始”文件。

谢谢

4

0 回答 0