Então, estou fazendo um programa que simula reprodução de duas espécies, as passivas e agressivas, se uma espécie pega 1 comida ela apenas sobrevive no jogo, se uma espécie pega 2 comidas ela reproduz e sobrevive. Cada especie é locada para encontrar 1 par de comida, com uma probabilidade de encarar outra especia, um passivo, no qual eles dividem o par igualmente, e a agressiva, que pega 3/2 da comida, tendo assim 50% de chance de reproduzir e a passiva tendo 50% de chance de sobreviver, e assim indo. Porém meu programa apresenta um erro de calculo que não consigo, no qual a população reproduz de maneira incontrolavel, eis o código:
public class Simulação {
public static void main(String[] args) {
int mansos=5;
int putos = 1;
int reserva;
int comidas;
int prob; // Probabilidade de encontro padrão
int probI; // Probabilidade de encontros de distintas raças
int probS; // Probabilidade de sobrevivencia
//Para uma determinada quantidade de comida
//Os mansos vão aleatoriamente pegar o par de vetores de uma dessas comidas
//Caso se encontrem eles dividem a comida e sobrevivem sem se reproduzir
//Caso peguem o par sem se deparar com outros mansos, eles se reproduzem
for(int i=0;i<300;i++){
reserva = mansos;
comidas=5;
System.out.println(" - - - - - - - - - - - - - - - - Rodada numero: "+(i+1)+" - - - - - - - - - - - - - - - -");
for(int j=0;j<mansos;j++){
prob = 1+ (int) (Math.random() *100);
probI = 1+ (int) (Math.random() *100);
//Se tiver comida suficiente para reproduzir e sobreviver
if(comidas>=0){
if(prob>=0 && prob<=30){
if(probI>=0 && probI<=50){
System.out.print("Um puto encarou um manso e ");
comidas -=2;
probI = 1+ (int) (Math.random() *100);
if(probI>=0 && probI<=50){
System.out.print("conseguiu reproduzir e ");
putos = putos + 1;
}
probS = 1+ (int) (Math.random() *100);
if(probS>=0 && probS<=30){
System.out.print("manso sobreviveu\n");
}
if(probS>50 && probS<=100){
System.out.print("manso morreu\n");
reserva -= 1;
}
}
else{
System.out.println("Dividaram a comida");
comidas -=2;
}
}
else{
System.out.println("Individuo Reproduziu");
reserva +=1;
comidas -=2;
}
}
}
System.out.println("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -");
mansos = reserva;
}
System.out.println("Controle populacional de mansos: "+mansos);
System.out.println("Controle populacional de putos: "+putos);
}
}