All pastes #799050 Raw Edit

Miscellany

public text v1 · immutable
#799050 ·published 2007-11-27 07:44 UTC
rendered paste body

public class Alkuelain {

	protected static int otuslaskuri = 0;
	protected final int YKSILOLLISYYS;
	protected static char[] perusemas = {'A','C','G','T'};
	protected static final int perimanKoko = 30;
	protected char[] perima;
	protected String perimalista;			
	
	public Alkuelain(){ //luo alkueläimen, jolle arvotaan perimä.
		this.YKSILOLLISYYS = otuslaskuri;
		++Alkuelain.otuslaskuri;
		this.perima = new char[ perimanKoko];
		for (int i=0; i < this.perima.length; ++i){
			this.perima[i] = perusemas[(int) Math.random()*4];
		}			 
	}
	public Alkuelain(char[] perima){ //luo alkueläimen annetulla perimällä. Määrittele mitä tehdään, jos perimä ei ole kelvollinen.
		this.YKSILOLLISYYS = otuslaskuri;
		++Alkuelain.otuslaskuri;
		//this.perima = new char[ perimanKoko];
		for (int i=0; i < perima.length; ++i){
			if (this.perima[i] != 'A' ^ this.perima[i] != 'C' ^ this.perima[i] != 'G' ^ this.perima[i] != 'T')
		        this.perima[i] = perusemas[(int) Math.random()*4];
		}
	}
	public void mutaatio(){ //aikaansaa aidon mutaation alkueläimen perimään, so. jokin arvottu nukleotidi muuttuu arvotulla tavalla.
		int j = (int) Math.random()*30;
		this.perima[j] = perusemas[(int) Math.random()*4];
	}
	public Alkuelain jakaudu(){ //palauttaa arvonaan jakautumalla syntyneen alkueläimen. Huomaa että myös perimätaulukon sisältö on kopioitava! Miksi?
		return new Alkuelain (this.perima);
	}
	public Alkuelain pariudu(Alkuelain toinen){ //tuottaa this-alkueläimen ja parametrina annetun alkueläimen jälkeläisen.
		char[] parit = new char[ perimanKoko];
		for (int i=0; i < parit.length; ++i){
			if (Math.random()<0.5)
				parit[i] = toinen.perima[i];
			else
				parit[i] = this.perima[i];
		}
		return new Alkuelain(parit);
	}
	
	public String toString(){ //tuottaa merkkiesityksen alkueläimestä 
		perimalista = new String (perima);
		return "Alkueläin "+this.YKSILOLLISYYS+".: "+this.perimalista;
	}


}