private void updateDistribution(int[] plate)
	{

		int sum = 0, max = 0;
		double normalfactor = 1.0 * numfruits * (choice + 1) / length;
		double normalweight = 0.6 - (1.2 * (choice + 1) / nplayers);
		choicelist[choice] = plate.clone();
		for(int i = 0; i < length; i++)
		{
			observedlist[i] = observedlist[i] + plate[i];
			if((choice + 1) * 2.5 >= (choicesleft + 1))
				distribution[i] = (int) Math.round(adjfactor * observedlist[i] * choicesleft / (choice + 1));
			else
				distribution[i] = (int) Math.round((adjfactor * observedlist[i] * (1 - normalweight) + normalfactor * normalweight) * choicesleft / (choice + 1));
			sum = sum + distribution[i];
			distsum[i] = sum;
			if(distribution[i] > distribution[max])
				max = i;
		}
		if(distsum[length - 1] != numfruits * choicesleft)
		{
			distribution[max] = distribution[max] + ((int) Math.round(numfruits * choicesleft)) - distsum[length - 1];
			sum = 0;
			for(int i = 0; i < length; i++)
			{
				sum = sum + distribution[i];
				distsum[i] = sum;
			}

		}
	}