@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET CC=50
SET C0=9
SET C1=+-×÷+-*/()
FOR /L %%c IN (1,1,%CC%) DO (
CALL :R3 %C0%
FOR /L %%i IN (1,1,%C0%) DO (
CALL :RANDOM 10 %%i
CALL :RANDOM 4 X%%i
CALL :R2 X%%i
SET C3=!C3!!al%%i!!VAR%%i!!br%%i!!c!
SET CP=!CP!!al%%i!!VAR%%i!!br%%i!!b!)
SET /A C4=!C3! 2>nul
IF NOT !C4! LEQ 0 (
SET /A LOG1+=1,LOG2+=!C4!
IF %%c LSS 100 (SET E100=.) ELSE SET E100=
IF %%c LSS 10 (SET E10=.) ELSE SET E10=
ECHO ...!E100!!E10!%%c: !CP! = !C4!
)
SET C3=&SET CP=
)
SET /A LOG=LOG2/LOG1
ECHO _______________________________________________
ECHO Stat: %LOG1%/%CC% =^> %LOG2%/%LOG1%=%LOG%
pause>nul
GOTO :EOF
:RANDOM
SET /A VAR%2=%RANDOM%%%%1
IF !VAR%2! EQU 0 GOTO %0
GOTO :EOF
:R2
SET a=!VAR%1!
IF "%1" == "X%C0%" SET b=&&SET c=&&GOTO :EOF
SET /A x=%a%+4
SET b=!C1:~%a%,1!
SET c=!C1:~%x%,1!
GOTO :EOF
:R3
FOR /L %%i IN (0,1,%1) DO SET al%%i=&SET br%%i=
SET /A al0=%RANDOM%%%%1
IF %al0% LEQ 1 (
SET /A al0=1,sd=%1-1) ELSE (
SET sd=%1+1)
SET /A br0=%RANDOM%%%(%sd%-%al0%)
IF %br0% EQU 0 (
SET /A br0=%al0%+1) ELSE (
SET /A br0=%br0%+%al0%)
SET al%al0%=%C1:~8,1%
SET br%br0%=%C1:~9,1%
GOTO :EOF