#include<iostream.h>

void main(void)
{
	int t,x,trial,RWer,RWer_counter[201];
	double RV,Q[201];
	
	srand((unsigned int)time(NULL));
	
	//場所xにいるランダムウォーカーの数（初期化）
	for(x=-100;x<=100;x++)	RWer_counter[100+x]=0;
	
	//ランダムウォーカー500個をそれぞれシミュレーション
	for(trial=0;trial<500;trial++)
	{
		RWer=0;
		
		for(t=0;t<100;t++)
		{
			RV=(double)rand()/(double)(RAND_MAX+1);
			
			if(RV<0.5)	RWer--;
			else	RWer++;
		}
		
		//ランダムウォーカーが到達した場所のカウンターを1つ増やす
		RWer_counter[100+RWer]++;
	}
	
	//場所xにいるランダムウォーカーの相対頻度
	for(x=-100;x<=100;x++)
	{
		Q[100+x]=(double)RWer_counter[100+x]/500;
	}
	
	for(x=-100;x<=100;x++)	printf("Q(%d)=%f\n",x,Q[100+x]);
}
