#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

int main()
{
	int t, RWer, jump_counter; 
	double RV, T, sum_T; 
	
	srand((unsigned int)time(NULL)); 
	
	// 時刻100までに起こるランダムウォーカーの移動回数を決める
	jump_counter = 0; // 移動回数（初期化）
	sum_T = 0; // 移動間隔の和（移動時刻）（初期化）
	
	while (sum_T <= 100)
	{
		RV = (double)rand() / (double)(RAND_MAX + 1); 
		
		T = (-log(1.0 - RV) / 1.0); // 時間間隔
		sum_T += T; // 時間間隔を足す
		
		if (sum_T <= 100)	jump_counter++; // 移動回数を1回増やす
	}
	
	// ランダムウォーク開始
	RWer = 0; 
	
	for (t = 0; t < jump_counter; t++)
	{
		RV = (double)rand() / (double)(RAND_MAX + 1); 
		
		if (RV < 0.5)  RWer--; 
		else           RWer++; 
	}
	
	printf("時刻100におけるランダムウォーカーの位置 = %d", RWer); 

	return 0; 
}