import java.util.List; import java.util.Random; /** * 生成小学题目 */ public class PrimaryProblem implements ProblemsGenerator { private static final Random RANDOM = new Random(); private final BracketManager bracketManager = new BracketManager(); private final ExpressionBuilder expressionBuilder = new ExpressionBuilder(); @Override public String generate() { String expression; do { int numCount = 2 + RANDOM.nextInt(4); expression = expressionBuilder.generateBasicExpression(numCount); List numPositions = expressionBuilder.getNumberPositions(expression); int pairs = bracketManager.decideParenthesesPairs(numCount); if (pairs > 0) { expression = bracketManager.addParentheses(expression, pairs, numPositions); } } while (expressionBuilder.hasDivideByZero(expression)); return expression; } }