PROGRAM d7r11(input,output); (* driver for routine IRBIT2 *) (* calculate distribution of runs of zeros *) CONST nbin=15; ntries=500; VAR i,iflg,ipts,iseed,j,n : integer; delay : ARRAY [1..nbin] OF real; FUNCTION twoton(n : integer) : integer; BEGIN IF (n=0) THEN twoton := 1 ELSE twoton := 2*twoton(n-1) END; (*$I MODFILE.PAS *) (*$I IRBIT2.PAS *) BEGIN iseed := 111; FOR i := 1 to nbin DO BEGIN delay[i] := 0.0 END; ipts := 0; FOR i := 1 to ntries DO BEGIN IF (irbit2(iseed) = 1) THEN BEGIN ipts := ipts+1; iflg := 0; FOR j := 1 to nbin DO BEGIN IF ((irbit2(iseed) = 1) AND (iflg = 0)) THEN BEGIN iflg := 1; delay[j] := delay[j]+1.0 END END END END; writeln ('distribution of runs of n zeros'); writeln ('n':6,'probability':22,'expected':18); FOR n := 1 to nbin DO BEGIN writeln ((n-1):6,delay[n]/ipts:19:4,1/twoton(n):20:4); END END.