Java学校项目随机错误

标签 java eclipse random system project

https://www.dropbox.com/s/5iklxvhslh4kfe7/CS%203114.zip

我的学校项目代码中有一些我无法弄清楚的错误。上面的链接是我的项目代码。项目说明位于 P1.pdf 文件中。

我的错误与此代码有关:

                /*
                for (int i = 0; i < reactions.length; i++)
                {
                    reactions[i].UpdateFireTime();
                    debugwriter.write(i + "| " + reactions[i].FireTime());
                    debugwriter.newLine();
                }
                debugwriter.newLine();
                heap.build();
                //*/

                //*
                for (int i = 0; i < table[reactionIndex].length; i++)
                {
                    int rindex = table[reactionIndex][i];
                    reactions[rindex].UpdateFireTime();
                }
                for(int i = 0; i < reactions.length; i++)
                {
                    debugwriter.write(i + "| " + reactions[i].FireTime());
                    debugwriter.newLine();
                }
                debugwriter.newLine();
                heap.build();

                //*/

第一个 for 循环更新每个 react 的触发时间,而第二个 for 循环使用我的表来更新特定的相关 react 。我的答案对于第一个 for 循环是正确的,但当我使用第二个循环时是错误的。我已经测试过,如果我更新每个 react 触发时间并且结果与我的表相符,看看哪些倾向会发生变化。这意味着唯一的区别是 -Math.log(Math.random()) 因子。如果我将随机数设置为常量,那么使用两个循环都会得到相同的结果。我已经检查了我的代码很多次,但我就是不知道问题出在哪里。谁能帮帮我吗?

附注: .ltf 文件只是相当大的.txt 文件。我使用 .ltf 来将它们与常规 .txt 文件区分开来

DIMER 示例的正确平均值是:~650 ~650 ~220

编辑:第三个循环仅用于调试目的。我所说的 2 个循环是第一个和第二个循环,其中第一个循环是被注释掉的循环。

最佳答案

您在第一个循环中不需要table[reactionIndex]。只需使用 table.length-1 ,您就可以使用 i 作为索引中的位置来循环遍历并执行操作。

关于Java学校项目随机错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009908/

相关文章:

java - ListView 内的片段 - Wicket

java - 此版本的渲染库比您的 IntelliJ IDEA 版本更新。请更新 IntelliJ IDEA

java - 为什么在 Citrix 上首次调用 java.io.File.createTempFile(String,String,File) 需要 5 秒?

java - 正在调用 Servlet 的 service 和 init 方法,但没有调用 doGet

python - 0到1之间的随机数?

java - 如何按某些属性对对象列表进行排序

java - 读取java进程的输入流

swift - 按下正确的对象后,如何更改 9 个对象的颜色?

android - 我在 Eclipse 中更改了资源,应用程序显示旧资源

php - sql mysql查询,用于根据条件随机获取定义数量的行