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();
//*/
루프에 대한 첫 번째는, 모든 반응의 발사 시간을 업데이트 :
내 오류가이 코드를 함께 할 수있는 뭔가가. 내 대답은 첫 번째 루프에서는 맞지만 두 번째 루프에서는 잘못되었습니다. 나는 모든 반응을 발사하고 결과가 내 테이블과 일치하면 어떤 경향이 변하는지를 테스트했다. 이것은 유일한 차이점은 -Math.log (Math.random()) 인수라는 것을 의미합니다. 임의의 숫자를 상수로 설정하면 두 루프를 모두 사용하여 동일한 결과를 얻습니다. 여러 번 코드를 살펴 봤는데 문제가 무엇인지 파악할 수 없습니다. 누구든지 나를 도울 수 있습니까?
P.S. .: .ltf 파일은 매우 큰 .txt 파일입니다. 나는 DIMER의 예를 들어
올바른 수단이 정규가 .txt 파일과 구별하기 위해 .ltf를 사용 : ~ 650 ~ 650 ~ 220
편집 : 세 번째 루프는 단지 디버깅 목적을위한 것입니다. 내가 말하는 두 개의 루프는 첫 번째와 두 번째입니다. 첫 번째 것은 주석 처리 된 루프입니다.