JSFiddle - React, Tailwind, and code Playground

HTML

<a href="http://math.stackexchange.com/questions/2046492/how-likely-are-two-events-to-occur-at-the-same-time">
http://math.stackexchange.com/questions/2046492/how-likely-are-two-events-to-occur-at-the-same-time/2046839</a>
<p>

L<input id="L" value="100"><br>
n1<input id="n1" value="3"><br>
n2<input id="n2" value="8"><br>
t1<input id="t1" value="4"><br>
t2<input id="t2" value="2.3"><br>
<button onclick="restartSimul();return false">restart</button>
<button onclick="stopx();return false">stop</button>

<p>
p overlap=<span id="pov"></span><br>
n1*= <span id="n1x"></span><br>
n2*= <span id="n2x"></span><br>
iters= <span id="iters"></span><br>

JavaScript

var stop=0;
var t1,t2,r1,r2,l1,l2,tc,L;
var nc1a=0,nc2a=0;
var x1=0,x2=0;
var iter=0,overlaps=0;

function exponential(lambda) {
   return -Math.log(Math.random())/lambda;
}

function stopx() {
  stop=1;
}

function iterx() {
   var ov = 0;
   if(stop) return;
   while(x1<L && x2<L)  {
       if(x1<x2) {x1 += exponential(l1)+t1; nc1a++;}
       else      {x2 += exponential(l2)+t2;  nc2a++;}
       if(Math.abs(x1-x2)<tc) ov++;
   } 
   //console.log("iterating x1="+x1 + " x2=" +x2 + "ov=" +ov);
   if(ov>0) {
       overlaps++;
   }
   iter ++;
   x1 -= L;
   x2 -= L;
   document.getElementById('pov').innerHTML = (overlaps/iter).toFixed(4);
   document.getElementById('n1x').innerHTML = (nc1a/iter).toFixed(2);
   document.getElementById('n2x').innerHTML = (nc2a/iter).toFixed(2);
   document.getElementById('iters').innerHTML = iter;
   setTimeout(this.iterx, 10);
}

function  restartSimul() {
   console.log("restarting" );
   stop = 0;
   nc1a=0,nc2a=0;
   x1=0,x2=0;
   iter=0,overlaps=0;

   t1 = parseFloat(document.getElementById("t1").value);
   t2 = parseFloat(document.getElementById("t2").value);
   tc = (t1+t2)/2.0;
   L = parseFloat(document.getElementById("L").value);
   r1 = parseFloat(document.getElementById("n1").value)/L;
   r2 = parseFloat(document.getElementById("n2").value)/L;
   l1 = r1/(1-r1*t1);
   l2 = r2/(1-r2*t2);
   console.log("t1=" + t1 + " t2=" + t2 + " r1=" + r1 + " r2=" + r2 + " l1=" + l1 + " l2=" +l2 );
   if(l1<=0 || l2 <=0) {alert("Bad values. see console "); stop=1;}
   iterx();
}