# Bus.py, illustration of the bus paradox

import random,sys
from rpy import *  # for convenience, call R from Python

class glbs:  # globals
   rnd = random.Random(12345)
   lastbus = None  # time last bus arrived
   thisbus = None  # time current bus arrived

def doexpt(opt):
   glbs.lastbus = 0.0
   glbs.thisbus = glbs.rnd.expovariate(0.1)
   while glbs.thisbus < opt:
      glbs.lastbus = glbs.thisbus
      glbs.thisbus += glbs.rnd.expovariate(0.1)
   return 

def main():
   observationpoint = float(sys.argv[1])
   nreps = int(sys.argv[2])
   print 'r'  # to be redirected to a file
   for i in range(nreps):
      doexpt(observationpoint)
      print observationpoint-glbs.lastbus  # to be redirected to a file

if __name__ == '__main__': main()
