Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
65
Task/Average-loop-length/Simula/average-loop-length.simula
Normal file
65
Task/Average-loop-length/Simula/average-loop-length.simula
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
BEGIN
|
||||
|
||||
REAL PROCEDURE FACTORIAL(N); INTEGER N;
|
||||
BEGIN
|
||||
REAL RESULT;
|
||||
INTEGER I;
|
||||
RESULT := 1.0;
|
||||
FOR I := 2 STEP 1 UNTIL N DO
|
||||
RESULT := RESULT * I;
|
||||
FACTORIAL := RESULT;
|
||||
END FACTORIAL;
|
||||
|
||||
REAL PROCEDURE ANALYTICAL (N); INTEGER N;
|
||||
BEGIN
|
||||
REAL SUM, RN;
|
||||
INTEGER I;
|
||||
RN := N;
|
||||
FOR I := 1 STEP 1 UNTIL N DO
|
||||
BEGIN
|
||||
SUM := SUM + FACTORIAL(N) / FACTORIAL(N - I) / RN ** I;
|
||||
END;
|
||||
ANALYTICAL := SUM;
|
||||
END ANALYTICAL;
|
||||
|
||||
REAL PROCEDURE EXPERIMENTAL(N); INTEGER N;
|
||||
BEGIN
|
||||
INTEGER NUM;
|
||||
INTEGER COUNT;
|
||||
INTEGER RUN;
|
||||
FOR RUN := 1 STEP 1 UNTIL TESTS DO
|
||||
BEGIN
|
||||
BOOLEAN ARRAY BITS(1:N);
|
||||
INTEGER I;
|
||||
FOR I := 1 STEP 1 UNTIL N DO
|
||||
BEGIN
|
||||
NUM := RANDINT(1,N,SEED);
|
||||
IF BITS(NUM) THEN GOTO L;
|
||||
BITS(NUM) := TRUE;
|
||||
COUNT := COUNT + 1;
|
||||
END FOR I;
|
||||
L:
|
||||
END FOR RUN;
|
||||
EXPERIMENTAL := COUNT / TESTS;
|
||||
END EXPERIMENTAL;
|
||||
|
||||
INTEGER SEED, TESTS;
|
||||
SEED := ININT;
|
||||
TESTS := 1000000;
|
||||
BEGIN
|
||||
REAL A, E, ERR;
|
||||
INTEGER I;
|
||||
OUTTEXT(" N AVG CALC %DIFF"); OUTIMAGE;
|
||||
FOR I := 1 STEP 1 UNTIL 20 DO
|
||||
BEGIN
|
||||
A := ANALYTICAL(I);
|
||||
E := EXPERIMENTAL(I);
|
||||
ERR := (ABS(E-A)/A)*100.0;
|
||||
OUTINT(I, 2);
|
||||
OUTFIX(E, 4, 7);
|
||||
OUTFIX(A, 4, 10);
|
||||
OUTFIX(ERR, 4, 10);
|
||||
OUTIMAGE;
|
||||
END FOR I;
|
||||
END;
|
||||
END
|
||||
Loading…
Add table
Add a link
Reference in a new issue