기본적으로이 문제는 함수 내부에 방정식을 넣으려고하지만 함수에 값을 설정하지 않는 것 대신에이 문제가 있습니다. 그것을 전혀 변경하지 마십시오.함수 내부의 방정식에 관한 간단한 질문
이것은 포식자 먹이 시뮬레이션이며이 코드는 for 루프 안에 있습니다.
wolves[i+1] = ((1 - wBr) * wolves[i] + I * S * rabbits[i] * wolves[i]);
rabbits[i+1] = (1 + rBr) * rabbits[i] - I * rabbits[i] * wolves[i];
내가 이것을 실행하면이 의도 한대로 작동하고 나는 함수 내부에 넣어하려고 할 때 그러나, 적절하게 이러한 배열 모두의 값을 변경,
int calcRabbits(int R, int rBr, int I, int W)
{
int x = (1 + rBr) * R - I * R * W;
return x;
}
int calcWolves(int wBr, int W, int I, int S, int R)
{
int x = ((1 - wBr) * W + I * S * R * R);
return x;
}
을 그리고 값을 설정 as
rabbits[i+1] = calcRabbits (rabbits[i], rBr, I, wolves[i]);
wolves[i+1] = calcWolves(wBr, wolves[i], I, S, rabbits[i]);
값은 초기화 될 때와 동일하게 유지되며 전혀 작동하지 않는 것 같습니다. 이유는 알 수 없습니다. 나는 좋은 몇 시간 동안이 일을 해왔다. 아마도 그 일은 내가 누락 된 것이지만, 나는 그것을 이해할 수 없다.
모든 도움을 주시면 감사하겠습니다.
편집 : 매개 변수가 잘못되었다는 것을 알았지 만, 올바른 매개 변수를 사용하기 전에 시도했지만 여전히 실수로 잘못된 매개 변수로 변경했습니다 (컴파일러 마우스 오버는 매개 변수의 이전 버전을 표시하고있었습니다)
는Edit2가 : 코드의 전체 부분이
days = getDays(); // Runs function to get Number of days to run the simulation for
dayCycle = getCycle(); // Runs the function get Cycle to get the # of days to mod by
int wolves[days]; // Creates array wolves[] the size of the amount of days
int rabbits[days]; // Creates array rabbits [] the size of the amount of days
wolves[0] = W; // Sets the value of the starting number of wolves
rabbits[0] = R; // sets starting value of rabbits
for(int i = 0; i < days; i++) // For loop runs the simulation for the number of days
{
// rabbits[i+1] = calcRabbits (rabbits[i], rBr, I, wolves[i]);
// // //This is the code to change the value of both of these using the function
// wolves[i+1] = calcWolves(wBr, wolves[i], I, S, rabbits[i]);
// This is the code that works and correctly sets the value for wolves[i+1]
wolves[i+1] = calcWolves(wBr, wolves[i], I, S, rabbits[i]);
rabbits[i+1] = (1 + rBr) * rabbits[i] - I * rabbits[i] * wolves[i];
}
편집입니다 : 내가하는 int로 RBR 및 WBR를 넣고 있었어요 내 실수를 실현하고, 그래서 1의 밑에 있었다 수 있었다 수레했다 그들은 자동으로 0으로 변환되었습니다. 감사합니다. sje
무엇보다이 점은 잘못되었습니다. 적어도 전체 루프를 보여 주시겠습니까? 또한,'return ((1-wBr) * W + I * S * R * R);을 사용할 수 있습니다. .etc – tcooc
calcWolves()에 대한 매개 변수 순서가 옳지 않은 것 같습니다. –
원래 원래대로 설정 했었지만 작동하지 않을 때 x을 추가하여 어떤 이유로 든 문제를 해결할 수 있는지 여부는 불필요하다고 말할 수있었습니다. –