O código a seguir é mais uma modificação do jogo da vida, aqui adicionamos um código que calcula a média de células vivas em todas as gerações, e calcula o desvio padrão.
O desvio padrão é calculado seguindo a formula sqrt((pow(x[0]-media,2) + pow(x[1]-media,2) + ...)/x.length-1);
Código-Fonte:
float vendaAn;
int NumeroGeracao=1;
int[] escheme = {};
int[] Mundoatual = {0,1,1,0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1};
int[] MundoNovo = new int[32];
void setup(){
size(1280,720);
frameRate(1);
background(0);
//Mostramundo();
}
int CruzaCelulas(int Posicao){
int NumeroCelulas = Mundoatual[Posicao-1] + Mundoatual[Posicao] + Mundoatual[Posicao+1];
return NumeroCelulas;
}
void Mostramundo(){
for(int i=0;i<Mundoatual.length;i++){
if(Mundoatual[i]==1){
ellipse(i*20,NumeroGeracao *30,20,20);
}
}
}
void estatisticas(){
int aux=0;
println(escheme.length);
if(escheme.length==0 || escheme[escheme.length-1]!=0){
for(int cont=0;cont<Mundoatual.length;cont++){
aux += Mundoatual[cont];
}
escheme = append(escheme,aux);
}else{
float media=0;
float desvio=0;
float max=0;
for(int cont=0;cont<escheme.length;cont++){
stroke(255);
//point((cont+1)*150-6,(height - escheme[cont]*50-6));
if(cont<escheme.length-1){
if(escheme[cont]>=max){max=escheme[cont];}
media += float(escheme[cont]);
}else{
media = media/escheme.length;
for(int i=0;i<escheme.length;i++){
desvio += pow((escheme[i]-media),2);
}
desvio = sqrt(desvio/escheme.length-1);
println("media de células vivas: "+media);
println("desvio padrão de células vivas: "+desvio);
}
}
}
/*
for(int cont=0;cont<escheme.length;cont++){
println((cont+1)+"ª Geração: "+escheme[cont]);
if(escheme[cont]==0){
noLoop();
}
}
*/
}
void draw(){
int NumeroCelulas = 0;
// Mostramundo();
// if(escheme.length>0 && escheme[escheme.length-1]>0){
estatisticas();
//}
//println("Tamanho atual: "+Mundoatual.length);
for(int o=1;o<Mundoatual.length-1;o++){
NumeroCelulas = CruzaCelulas(o);
if(NumeroCelulas==2){
MundoNovo[o]=1;
}else{
MundoNovo[o]=0;
}
}
arrayCopy(MundoNovo,Mundoatual,32);
NumeroGeracao++;
}
Nenhum comentário:
Postar um comentário