perm filename RANDOM.SAI[LSP,BGB] blob sn#056545 filedate 1973-08-06 generic text, type T, neo UTF8
COMMENT ⊗   VALID 00002 PAGES 
RECORD PAGE   DESCRIPTION
 00001 00001
 00002 00002	BEGIN	"RANDOM"
 00004 ENDMK
⊗;
BEGIN	"RANDOM"
	SAFE INTEGER ARRAY HISTO[0:100];
	SAFE INTEGER ARRAY RAN5[0:255];
	INTEGER RAN1,RAN2,RAN3,RAN4,INITFLG;
	INTEGER I,J;

SIMPLE PROCEDURE RANDOMI;
BEGIN	"INIT"
	INTEGER I;
	RAN1←1;
	RAN2←3; 
	FOR I←0 STEP 1 UNTIL 255 DO
	RAN5[I]←RAN2←(RAN2*3)MOD 2↑31 ;
	INITFLG	←	TRUE;
END	"INIT";

SIMPLE INTERNAL REAL PROCEDURE RANDOM;
BEGIN	"RANDOM"
	IF INITFLG THEN ELSE RANDOMI;
	START_CODE MOVE 1,RAN2;MULI 1,1756;IDIVI 2,8191;MOVEM 3,RAN1;END;
COMMENT	RAN1←(RAN2*1756) MOD 8191;
	RAN3←RAN1 DIV 32;
	RAN4←RAN5[RAN3];
	RAN2←RAN5[RAN3]←(RAN2*3)MOD 2↑31;
	RETURN(RAN4/2↑31)
END	"RANDOM";
	OUTSTR(13&10);
	FOR I ← 1 STEP 1 UNTIL 50000 DO
	BEGIN J←100*RANDOM; HISTO[J]←HISTO[J]+1;END;

	FOR J← 0 STEP 1 UNTIL 9 DO BEGIN
	FOR I← 0 STEP 1 UNTIL 9 DO OUTSTR(CVS(HISTO[J*10+I])&"  ");
	OUTSTR(13&10);END;OUTSTR(13&10);
END	"RANDOM"