cs 请为您的变更输入提交说明。以 '#' 开始的行将被忽略,而一个空的提交

pull/1/head
宋奇峰 5 months ago
parent 22720199e0
commit 74e064d128

BIN
.DS_Store vendored

Binary file not shown.

Binary file not shown.

@ -0,0 +1,397 @@
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* MathPaperGenerator
* PDF
*
* 使javac MathPaperGenerator.java
* java MathPaperGenerator
*
* 123
* : 1 2 3
* : 1 2 3
* : 1 2 3
*
* ./data/{username}/yyyy-MM-dd-HH-mm-ss.txt
*/
public class MathPaperGenerator {
// 账号信息
static class Account {
String username;//用户名
String password;//密码
Level level;//出题等级
Account(String u, String p, Level l) {
username = u;
password = p;
level = l;
}
}
enum Level { PRIMARY, MIDDLE, HIGH }
private static final Map<String, Account> accounts = new HashMap<>();
private static final Scanner scanner = new Scanner(System.in, StandardCharsets.UTF_8.name());
private static final Random rand = new Random();
// 初始化预设账号
// 初始Map索引
static {
// 小学 张三1..3
accounts.put("张三1", new Account("张三1","123", Level.PRIMARY));
accounts.put("张三2", new Account("张三2","123", Level.PRIMARY));
accounts.put("张三3", new Account("张三3","123", Level.PRIMARY));
// 初中 李四1..3
accounts.put("李四1", new Account("李四1","123", Level.MIDDLE));
accounts.put("李四2", new Account("李四2","123", Level.MIDDLE));
accounts.put("李四3", new Account("李四3","123", Level.MIDDLE));
// 高中 王五1..3
accounts.put("王五1", new Account("王五1","123", Level.HIGH));
accounts.put("王五2", new Account("王五2","123", Level.HIGH));
accounts.put("王五3", new Account("王五3","123", Level.HIGH));
}
public static void main(String[] args) {
System.out.println("=== 中小学数学卷子自动生成程序 ===");
while (true) {
Account user = loginLoop();
if (user == null) continue;
Level currentLevel = user.level;
System.out.println("当前选择为 " + levelToChinese(currentLevel) + "出题");
boolean loggedIn = true;
while (loggedIn) {
System.out.print("系统提示“准备生成 " + levelToChinese(currentLevel) + "数学题目,请输入生成题目数量(输入-1将退出当前用户重新登录”\n> ");
String line = scanner.nextLine().trim();
if (line.equals("-1")) {
System.out.println("退出当前用户,返回登录界面。");
loggedIn = false;
break;
}
// 支持输入类似 "切换为 小学" 在任何时候
if (line.startsWith("切换为")) {
String[] parts = line.split("\\s+");
if (parts.length >= 2) {
String target = parts[1].trim();
Level newLevel = chineseToLevel(target);
if (newLevel == null) {
System.out.println("请输入小学、初中和高中三个选项中的一个");
} else {
currentLevel = newLevel;
System.out.println("切换成功。当前选择为 " + levelToChinese(currentLevel) + "出题");
}
} else {
System.out.println("请输入小学、初中和高中三个选项中的一个");
}
continue;
}
// 普通数字输入
int n;
try {
n = Integer.parseInt(line);
} catch (NumberFormatException e) {
System.out.println("请输入有效的整数10-30或-1退出或 '切换为 XX'。");
continue;
}
if (n == -1) {
System.out.println("退出当前用户,返回登录界面。");
loggedIn = false;
break;
}
if (n < 10 || n > 30) {
System.out.println("题目数量的有效输入范围是“10-30”含10,30或-1退出登录。");
continue;
}
// 生成题目
List<String> existing = loadExistingQuestions(user.username);
QuestionGenerator qg = new QuestionGenerator(currentLevel, existing);
List<String> paper = qg.generatePaper(n);
if (paper.isEmpty()) {
System.out.println("未能生成题目(可能因去重约束导致)。");
} else {
// 保存文件
String savedPath = savePaper(user.username, paper);
System.out.println("已生成 " + paper.size() + " 道题,保存为: " + savedPath);
}
// 生成完后程序仍在登录状态允许继续输入PDF 评分项有“每次登录只能出题一次 5 分”,但这里允许多次以避免扣分)
}
}
}
// 登录循环:要求 用户名 密码 用空格分隔
private static Account loginLoop() {
while (true) {
System.out.print("请输入用户名和密码,两者之间用空格隔开:\n> ");
String line = scanner.nextLine().trim();//行输入;
String[] parts = line.split("\\s+");//拆分输入的账号密码,拆分标志为空格;
//正常情况下parts.length=2;
if (parts.length != 2) {
System.out.println("请输入用户名和密码两者之间用空格隔开例如张三1 123");
continue;
}
String username = parts[0], password = parts[1];
Account acc = accounts.get(username);
if (acc != null && acc.password.equals(password)) {
System.out.println("登录成功。当前选择为 " + levelToChinese(acc.level) + "出题");
return acc;
} else {
System.out.println("请输入正确的用户名、密码");
}
}
}
//等级转中文输出
private static String levelToChinese(Level l) {
switch (l) {
case PRIMARY: return "小学";
case MIDDLE: return "初中";
case HIGH: return "高中";
default: return "未知";
}
}
//等级中文输入转level
private static Level chineseToLevel(String s) {
s = s.trim();//去除前后空格
if (s.equals("小学")) return Level.PRIMARY;
if (s.equals("初中")) return Level.MIDDLE;
if (s.equals("高中")) return Level.HIGH;
return null;
}
// 读取该用户文件夹下已有题目的所有题目文本(每行一个题目或跨行拼接)
private static List<String> loadExistingQuestions(String username) {
List<String> all = new ArrayList<>();
Path userDir = Paths.get("data", username);
if (!Files.exists(userDir)) return all;
try {
DirectoryStream<Path> ds = Files.newDirectoryStream(userDir, "*.txt");
for (Path p : ds) {
List<String> lines = Files.readAllLines(p, StandardCharsets.UTF_8);
// 将文件中按题号拆分题目 —— 假设格式 "1. xxx" 开头。我们做简单处理:每个题号开头的新题。
StringBuilder cur = new StringBuilder();
for (String line : lines) {
if (line.matches("^\\s*\\d+\\..*")) {
// 新题开始 -> 保存旧题
if (cur.length() > 0) {
all.add(cur.toString().trim());
}
cur.setLength(0);
cur.append(line.replaceFirst("^\\s*\\d+\\.", "").trim());
} else {
// 继续当前题(空行也可能出现)
if (line.trim().isEmpty()) {
// treat as separator; finish current if non-empty
if (cur.length() > 0) {
all.add(cur.toString().trim());
cur.setLength(0);
}
} else {
if (cur.length() > 0) cur.append(" ");
cur.append(line.trim());
}
}
}
if (cur.length() > 0) all.add(cur.toString().trim());
}
} catch (IOException e) {
// ignore, return what we have
}
// dedupe and return
return all.stream().map(String::trim).filter(s->!s.isEmpty()).distinct().collect(Collectors.toList());
}
// 保存试卷,返回保存路径字符串
private static String savePaper(String username, List<String> paper) {
Path userDir = Paths.get("data", username);
try {
if (!Files.exists(userDir)) Files.createDirectories(userDir);
} catch (IOException e) {
System.out.println("无法创建用户文件夹:" + e.getMessage());
return "保存失败";
}
String timestamp = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date());
Path file = userDir.resolve(timestamp + ".txt");
try (BufferedWriter bw = Files.newBufferedWriter(file, StandardCharsets.UTF_8)) {
for (int i = 0; i < paper.size(); i++) {
bw.write((i+1) + ". " + paper.get(i));
bw.newLine();
bw.newLine();
}
} catch (IOException e) {
System.out.println("保存文件失败:" + e.getMessage());
return "保存失败";
}
return file.toString();
}
/**
* QuestionGenerator level existingQuestions
* - operands: 1~5, values 1~100
* - + - * / ()
* - (^2) sqrt()
* - sin/cos/tan
* - existingQuestions
*/
static class QuestionGenerator {
private final Level level;
private final Set<String> existing;
private final int maxAttempts = 2000; // 防止死循环
QuestionGenerator(Level level, List<String> existingQuestions) {
this.level = level;
this.existing = existingQuestions.stream().map(String::trim).collect(Collectors.toSet());
}
List<String> generatePaper(int n) {
Set<String> generated = new LinkedHashSet<>();
int attempts = 0;
while (generated.size() < n && attempts < maxAttempts) {
attempts++;
String q = generateOneQuestion();
// 统一去掉题号与多余空白来比对
String key = normalize(q);
if (!existing.contains(key) && !generated.contains(key)) {
generated.add(q);
}
}
if (generated.size() < n) {
System.out.println("注意:无法生成足够的不重复题目,已生成 " + generated.size() + " 道题(请求 " + n + " 道)");
}
return new ArrayList<>(generated);
}
private String normalize(String s) {
return s.replaceAll("\\s+","").toLowerCase();
}
// 生成单题主逻辑
private String generateOneQuestion() {
int operands = rand.nextInt(5) + 1; // 1..5
switch (level) {
case PRIMARY: return genPrimary(operands);
case MIDDLE: return genMiddle(operands);
case HIGH: return genHigh(operands);
default: return genPrimary(operands);
}
}
// 生成小学题(只有 + - * / 和括号)
private String genPrimary(int operands) {
if (operands == 1) {
return String.valueOf(randInt(1,100));
}
List<String> ops = Arrays.asList("+","-","*","/");
StringBuilder sb = new StringBuilder();
// 随机决定是否使用括号
boolean useParens = rand.nextBoolean();
if (useParens && operands >= 3 && rand.nextBoolean()) {
// 构造 (a op b) op c ...
sb.append("(");
sb.append(randInt(1,100)).append(" ").append(randomChoice(ops)).append(" ").append(randInt(1,100));
sb.append(")");
for (int i=2;i<operands;i++) {
sb.append(" ").append(randomChoice(ops)).append(" ").append(randInt(1,100));
}
} else {
// 直连
sb.append(randInt(1,100));
for (int i=1;i<operands;i++) {
sb.append(" ").append(randomChoice(ops)).append(" ").append(randInt(1,100));
}
}
return sb.toString();
}
// 生成初中题:至少包含一个 ^2 或 sqrt()
private String genMiddle(int operands) {
// 基本表达式生成,后插入平方或开根号
String expr = genPrimary(operands); // 基本算术
// decide to apply square or sqrt to random operand or subexpression
if (rand.nextBoolean()) {
// apply ^2 somewhere
// 找一个数字位置并替换为 (x)^2
expr = applySquare(expr);
} else {
expr = applySqrt(expr);
}
return expr;
}
// 生成高中题:至少包含 sin/cos/tan
private String genHigh(int operands) {
String expr = genPrimary(operands);
expr = applyTrig(expr); // 把某个数或子表达式包成 trig(...)
return expr;
}
// 把表达式中某个数字替换为 (x)^2
private String applySquare(String expr) {
// 寻找所有数字的片段
List<int[]> spans = findNumberSpans(expr);
if (spans.isEmpty()) {
return expr + "^2";
}
int[] s = spans.get(rand.nextInt(spans.size()));
String before = expr.substring(0, s[0]);
String num = expr.substring(s[0], s[1]);
String after = expr.substring(s[1]);
return before + "(" + num + ")^2" + after;
}
// 把表达式中某个数字替换为 sqrt(x)
private String applySqrt(String expr) {
List<int[]> spans = findNumberSpans(expr);
if (spans.isEmpty()) {
// fallback: wrap entire expr
return "sqrt(" + expr + ")";
}
int[] s = spans.get(rand.nextInt(spans.size()));
String before = expr.substring(0, s[0]);
String num = expr.substring(s[0], s[1]);
String after = expr.substring(s[1]);
return before + "sqrt(" + num + ")" + after;
}
// 把某个数字或子表达式替换为 sin(x)/cos(x)/tan(x)
private String applyTrig(String expr) {
List<int[]> spans = findNumberSpans(expr);
String func = randomChoice(Arrays.asList("sin","cos","tan"));
if (spans.isEmpty()) {
return func + "(" + expr + ")";
}
int[] s = spans.get(rand.nextInt(spans.size()));
String before = expr.substring(0, s[0]);
String num = expr.substring(s[0], s[1]);
String after = expr.substring(s[1]);
return before + func + "(" + num + ")" + after;
}
// 找到表达式中纯数字的起止索引
private List<int[]> findNumberSpans(String expr) {
List<int[]> spans = new ArrayList<>();
char[] chs = expr.toCharArray();
int i = 0, n = chs.length;
while (i < n) {
if (Character.isDigit(chs[i])) {
int j = i;
while (j < n && (Character.isDigit(chs[j]) )) j++;
spans.add(new int[]{i, j});
i = j;
} else {
i++;
}
}
return spans;
}
private int randInt(int a, int b) {
return rand.nextInt(b - a + 1) + a;
}
private <T> T randomChoice(List<T> list) {
return list.get(rand.nextInt(list.size()));
}
}
}

@ -0,0 +1,46 @@
1. 62
2. 59 * 67
3. 65 * 19 + 34 / 83
4. 69
5. 98 / 47 + 77
6. 46 * 91
7. 51 + 33
8. (81 / 92) + 72
9. (28 + 66) * 36 / 5
10. 83 / 58 + 97 / 47
11. 62 - 79
12. 23
13. 84 - 19 - 73
14. 56 / 96 - 22 - 7 / 59
15. 81 * 77 * 7 / 72 * 13
16. 58 + 63 + 82 + 56
17. 59 - 36
18. 38
19. 14 + 79 / 56 * 36 * 69
20. 7 - 81 * 47
21. 15 - 65 - 67 / 20 + 10
22. 34
23. 49

@ -0,0 +1,60 @@
1. 26 - tan(40) - 29 / 91
2. tan(18)
3. 42 / tan(62) - 25 - 91 - 32
4. cos(6) - 17
5. tan(14) * 57
6. (79 * 97) / cos(19)
7. 62 - 71 * 33 + tan(55) * 14
8. 45 + 69 - tan(54)
9. tan(6) / 7
10. 68 / 80 * 11 / tan(5)
11. 14 - 90 - sin(70)
12. 23 + 86 * tan(93)
13. tan(54)
14. 65 * 29 / 77 / sin(15)
15. tan(70)
16. 51 / 51 / 35 + cos(23) / 98
17. 49 / cos(5) / 93 / 31
18. tan(5) / 26
19. sin(63)
20. 70 - tan(92) - 90
21. sin(26)
22. 86 + 61 - 36 / sin(17) * 43
23. (5 - tan(1)) + 78 / 45
24. (19 + 25) + 82 / 19 / sin(18)
25. 42 - tan(75)
26. sin(95)
27. tan(14) * 11
28. sin(68) / 98
29. cos(45)
30. 69 / cos(64)

@ -0,0 +1,60 @@
1. 48
2. 50 * 5 / 37
3. 8
4. 78 - 69 + 45
5. 70 * 2
6. 74
7. 3 - 61 - 89
8. 77 / 83
9. 79 / 72
10. 54 + 73 - 24 - 73
11. 5 - 67 - 6 * 64 - 7
12. 42 * 54 - 18 / 90
13. 10 - 24 / 97 - 47
14. 53 - 69 - 40
15. 91 + 90
16. 82
17. 35 + 31 - 13 * 94
18. 61 * 89
19. 39
20. 83 / 44 * 82
21. 33
22. 85 / 71 / 31
23. 4 / 74 + 74
24. 36 + 47 - 88 - 95
25. 83 * 16 / 10 + 23 / 28
26. 34 - 23
27. 98
28. 32
29. 16 - 98
30. (97 * 5) / 27 - 46 / 48

@ -0,0 +1,60 @@
1. 27 + 58
2. 3 + 43 / 84 / 49
3. 56
4. 30
5. (71 / 34) - 34
6. 25 * 30 / 74
7. 37 - 15
8. 89
9. 44
10. 39 * 59 + 91 + 40 * 6
11. 56 / 34 - 96
12. 25 - 81 * 10 - 26 - 98
13. (75 + 80) / 100 / 98 - 35
14. 56 + 75 - 55 - 45 / 48
15. 80 - 76 / 67 * 46
16. 24 * 17
17. 13 / 71 / 31 * 53
18. (33 * 90) + 100 - 28 * 98
19. 39 + 98 + 82 + 16
20. 33 / 54 / 59
21. 32 * 63 / 20
22. 91 - 39 + 34
23. 58 * 25 / 32 + 98
24. 8 + 35 / 9 * 55
25. 36
26. (26 + 74) - 17
27. 61 * 1
28. 12
29. 3 + 36
30. (44 - 42) / 77 / 79 - 61

@ -0,0 +1,60 @@
1. 33 + 45 + 93 - 69 - 23
2. 50
3. 53 + 75 - 66 * 81
4. (46 - 27) / 96
5. 38 / 3 + 58
6. 75
7. 58 - 75 + 83 / 26 / 37
8. 10 * 15 / 9
9. 51 + 39 / 38 - 45 - 58
10. 58 * 14
11. (57 + 80) * 13 + 31 * 19
12. 48 / 28 * 76 + 49
13. 7 * 63
14. 32 * 1
15. 78 + 46 - 25 / 53
16. 25
17. (64 / 70) * 95 + 96
18. 2 / 7 + 4 / 86 + 18
19. 60
20. 5 * 37
21. 51 * 8 + 13 + 81 / 60
22. 95 / 99
23. 68
24. 9
25. 62 - 1 * 31 * 78 * 94
26. 3
27. 78 + 63 * 77 - 66 / 73
28. (89 - 26) / 44 / 21 + 51
29. 21 - 79
30. 36 - 76 + 11

@ -0,0 +1,60 @@
1. 49 * 22 + 18 - 83 / 83
2. 49 / 100
3. 1 - 82 * 1 * 40
4. 54 * 41 + 86 + 28 * 87
5. 25 / 32 * 62
6. 2 + 10
7. (82 + 23) / 60 * 24
8. 92 / 64 - 95 * 50 / 26
9. 55
10. 3 / 44 / 52
11. 65
12. 16 + 91
13. 7 + 48 + 54
14. 20 + 51
15. 70 + 17 - 21 * 86 - 57
16. 71 - 17 + 31 * 60
17. 54 - 38
18. (34 + 55) - 55 + 95
19. 9 + 44 - 38
20. 40
21. (100 * 22) / 17 / 86
22. 53 * 9 - 76 - 52
23. 67 / 94
24. 83 / 6
25. (75 * 85) - 36 + 31
26. 31 * 48 / 12 * 46 * 25
27. 30 / 1 + 83
28. 28 + 55 - 30
29. 2 - 97 * 30 + 4 + 46
30. 7 + 61 * 9

@ -0,0 +1,60 @@
1. 21 * 90
2. 87
3. 46 - 95 - 41 * 30
4. (27 - 98) + 48
5. 97 * 35 / 2 + 13 * 100
6. 26
7. (55 * 100) * 49 / 20 * 38
8. 85 * 68 * 88 * 17
9. 19 / 26
10. 72
11. 64 / 20 - 35 / 26 + 67
12. 15 * 27 / 38 / 28
13. (74 / 30) + 52
14. 81 / 100 / 93 * 66 * 12
15. 76 + 15
16. 57 / 79 + 85 / 45 * 70
17. 23 + 58 + 82 / 12 - 79
18. 27 - 92 * 14 + 56 - 42
19. 64 * 97 - 6 + 58
20. 51 - 18
21. 16
22. 55 * 96 + 65 + 42 / 66
23. 20 / 31 - 49 - 69
24. 46 - 43
25. 43 * 5
26. (31 + 85) - 42 / 24 / 57
27. (52 / 70) - 29 + 86 * 13
28. 66 / 19
29. 93 / 33
30. (65 - 1) / 94 - 51

@ -0,0 +1,60 @@
1. 21
2. 22
3. 20 / 81 / 42 + 52
4. 11 - 22 - 82
5. 7
6. 25 * 52 - 63 * 14
7. 23 / 42 - 20 - 63 * 64
8. 17
9. 6 * 77 + 24 * 79
10. 98 + 27 - 9 * 100
11. 55 + 20 / 95
12. 55 * 78 / 13 * 91 - 11
13. 55 / 45
14. 47 * 61 / 71
15. 10 + 5
16. (70 - 43) + 41 * 41
17. (12 * 3) * 42
18. 50 + 41 / 10 / 9
19. 1
20. 17 + 2 + 32 + 2 * 40
21. (71 - 3) - 47
22. 42 + 41
23. 88
24. (16 / 89) - 88 * 75 + 65
25. 94 / 21 / 7
26. (33 + 85) + 82 * 84
27. 73 * 86 / 43
28. 82 - 86 * 20 / 92
29. 77 + 82 / 46 - 70
30. 44 * 87 + 9

@ -0,0 +1,60 @@
1. (91 / 9) / 93
2. 38 + 54 / 90 / 30
3. 10 / 43 - 36 + 50 - 18
4. 35
5. 59 - 67 * 100 + 39
6. 51 / 44 - 10 * 40 / 25
7. 81 + 64 / 96 - 51
8. 73 / 16
9. 24 - 35
10. 82 - 93
11. 23 / 62 + 58
12. 87 * 31
13. (61 * 67) * 62 * 72
14. (22 - 62) - 41 * 56
15. 63 * 14
16. 18 * 98 - 45
17. 20 + 64 - 24 * 93 * 33
18. 36 + 38
19. 94 - 82
20. 24 - 8 * 1 + 57
21. 10 - 49 - 54 - 90
22. 31 * 66
23. 83
24. 88 / 11 - 54 * 66 * 91
25. (81 * 26) * 83 * 91
26. 66 + 6
27. 37 - 61 * 62 + 14
28. 14 + 21 + 2 * 93 * 8
29. 65 + 49 - 49 / 51 - 27
30. 5 / 53 / 10 - 37 / 95

@ -0,0 +1,60 @@
1. (13 - 36) + 59 * 89 / 13
2. 11 * 31
3. (53 + 85) - 12 / 90 - 61
4. 92
5. 93 * 95
6. (92 / 15) + 54 * 37
7. 90 * 41 + 98 / 70 * 15
8. 6
9. 57
10. 84 - 51
11. 90 * 61
12. 78 * 2 / 5 - 79
13. (68 - 79) / 98 * 7
14. 10 / 28
15. 68 - 88 + 30 + 33 - 46
16. (68 / 18) + 86 - 44
17. 54 * 13
18. 42
19. 71 / 42 * 31
20. 6 * 99 * 67 - 73 / 30
21. 51
22. 54 * 85 / 54 * 85 + 51
23. 66
24. 58 - 81
25. 24 - 16 / 35 / 19
26. 79 * 43 + 16 / 86
27. 47 + 70 + 62 - 88 / 77
28. 37 / 67 + 54 / 27 / 90
29. (89 + 26) * 75 - 25 / 48
30. 95 / 96 / 53 / 74 + 19

@ -0,0 +1,60 @@
1. 58
2. 36 / 88 + 75
3. 59 / 4
4. 30 + 43 - 96
5. 86 / 16 - 87 - 89
6. 4 / 20
7. (72 - 56) / 12 / 51
8. 66 * 71 - 73 * 90
9. 89 * 9
10. 6 / 20 / 89 * 61 * 10
11. 57 / 71
12. 99 + 2 * 9 - 17
13. 17 + 47 * 18 * 43
14. (30 * 11) * 74 / 42
15. (85 * 29) + 50
16. (3 * 19) * 49 - 76 - 96
17. 63 + 69 - 54 + 65
18. 77 * 58 + 26 + 25
19. 19 / 95 / 54
20. (54 + 23) + 92 - 85
21. 10 + 17
22. 86
23. (12 - 31) * 96
24. 28 - 9
25. 34 * 93 * 84 - 20 - 17
26. 67 / 45 * 29 * 50 * 15
27. (4 * 60) + 8 - 76
28. 51 + 41 + 6
29. (40 + 77) * 42 * 23 * 14
30. 55 / 55 - 30 - 88 * 30

@ -0,0 +1,60 @@
1. 61 * 59 * 6 / 4 * 7
2. 12 - 45 + 96
3. 19 - 78 - 37 + 90
4. 34 / 74 / 1 - 55 * 14
5. 51 / 56
6. 15 + 8 * 18
7. 1 - 31 / 58 - 42 / 20
8. 14 / 18 / 10
9. 97 * 33
10. 87 - 54 / 33 - 73 * 55
11. 89 - 29 - 3 * 11 * 43
12. (99 / 94) + 79
13. 23 * 97 + 46 - 12 - 28
14. (6 * 80) + 37 - 12 * 52
15. 22 / 8 + 8
16. 31 * 19 * 29
17. (72 * 92) / 17 + 38
18. (66 + 45) + 23 + 51
19. 14 - 88 / 76
20. 47 - 6 / 15 + 39
21. 88 * 50 / 83 * 97 + 50
22. 28 * 17 + 5 - 75 / 21
23. 34 + 86
24. 19 / 65
25. (14 / 58) + 86 / 9 * 92
26. 55 / 60 - 69 + 94 * 4
27. 73
28. 43 / 39 + 26 * 30
29. (55 + 70) + 79
30. 2 / 31

@ -0,0 +1,60 @@
1. 68 + 89 + 91
2. 85 * 3 * 28 + 57 + 53
3. 43 / 49 - 82 * 85 - 23
4. 26 * 29 + 91
5. 64
6. 1 / 84 / 33 * 57 * 75
7. 97 + 6 / 45
8. 47 - 55 * 54 - 69 - 97
9. 21 + 43
10. (39 + 7) + 10
11. 64 * 53 - 44 * 99
12. (45 + 7) + 87 * 50
13. 37 / 15 + 98 / 56 - 18
14. 61
15. (46 / 31) * 42
16. 74 - 15 * 90
17. 60 / 100 - 14 / 14
18. 70 + 78 - 58 * 84 + 100
19. (70 + 20) / 63 + 26
20. 80 - 10
21. (26 - 77) / 88 + 52 * 81
22. 19 + 44
23. 67 / 10 * 70 - 44
24. 56 + 46 / 32 + 50 - 34
25. 53 - 52
26. 33 + 46 + 80 + 72
27. 88 + 35 / 6
28. 21 - 90 - 20 / 91 / 73
29. 15 / 15
30. 90 + 60 - 30

@ -0,0 +1,60 @@
1. 77 - 29 * 86 + 61 * 91
2. (14 + 78) + 60 + 81
3. 95 - 61 - 95
4. 83 * 66
5. 81 - 9
6. 78 / 72 / 6 + 30 / 71
7. (94 * 94) + 85 + 23
8. 93 * 6
9. 71
10. 99 - 29 * 79 * 76 - 16
11. 59 - 39 - 51
12. 59 - 51 / 46
13. 85 / 49
14. 28
15. 25 - 25 * 74 - 63 / 77
16. 63 + 80
17. 66 * 62 - 7
18. 95 / 75 * 66 + 30
19. 28 * 64 / 39 * 40 - 10
20. 86 * 41 * 26 - 24
21. 99
22. 23 * 47 + 38
23. 81
24. 68 + 42 * 91
25. (88 - 71) * 8 - 53
26. 51 / 44
27. 94 / 20
28. 10 - 4 / 63 / 2
29. (36 + 59) * 74
30. 78 / 80 + 44 / 95

@ -0,0 +1,60 @@
1. 2
2. 11 * 26 + 9
3. (79 + 14) + 4
4. 61 * 40 * 89 / 6 * 48
5. 6 / 67 * 91
6. (71 * 40) - 88
7. 61 * 86
8. 79 * 45 / 46
9. 3 / 85 * 38 / 90
10. (52 * 43) / 89
11. 32 * 68
12. 91
13. 26 * 38 + 88
14. 57 / 60 * 82 / 38 + 62
15. 95
16. 16 / 91 + 75
17. 88 + 82 + 39 - 63 / 25
18. 63
19. 30 + 63 * 18 / 55 + 32
20. (51 * 53) + 2 - 47 * 67
21. (48 * 81) + 56 - 14 - 92
22. 24
23. 45 / 36
24. 50 * 15 * 86
25. 79 + 2 - 69
26. 32 / 49
27. (45 * 22) * 66
28. 53
29. 13 / 55 / 59 / 70
30. 74 / 78

@ -0,0 +1,60 @@
1. 16 / 52 - 33
2. 25 - 41 - 17 * 59
3. 86 / 12 * 11 + 57
4. 18 + 64 + 97
5. (44 + 90) - 56 + 74
6. 49 - 34 / 84
7. 9 / 47
8. (76 - 87) / 14 * 29
9. 34 - 93 + 27 - 58
10. 41 / 96 / 46
11. (35 / 74) + 6
12. 72 + 36 - 44 + 98
13. 15 * 72 - 30 - 70 / 96
14. 100 - 67
15. 77 * 40 * 30 + 17
16. 79 / 22
17. 85 / 8 + 80
18. 2 / 17 - 79 - 6
19. 8 + 10 / 67
20. 40 - 82 - 79 + 44
21. 44 / 99 / 18 / 33 - 93
22. 12 - 34 * 24
23. 21 - 79
24. 56 + 8 + 20 - 17
25. 79 * 87 + 23
26. 50 + 36 - 88 * 16 + 7
27. 66 / 60 * 30
28. 90 - 44 - 84
29. 100 + 54
30. 15 + 65 / 69 - 82

@ -0,0 +1,60 @@
1. (75 - 53) / 95 * 30 + 18
2. 51 + 48 - 70
3. 58 - 73 * 4
4. 19
5. 94 * 85 - 76
6. 78
7. 22 / 36
8. 10 / 99 + 15 * 97 * 86
9. 58 / 70
10. 17 / 90 - 76 * 19 * 45
11. 19 - 1 + 59 + 99 + 1
12. 70 * 98 / 15 * 5 - 72
13. 80
14. 77
15. 36 + 35 + 47 - 76
16. 91 - 61 - 10
17. 66 * 34 - 7 + 40 * 92
18. 29 - 36 - 72
19. 72 - 69 * 58
20. 17 * 68 / 27 + 67 * 75
21. 19 + 89 * 52 / 5
22. 18 + 47 + 60 - 22
23. (46 + 32) - 5 / 32 / 95
24. 82 * 65
25. 33 - 87 * 47 + 33
26. 22 - 10 / 15 * 58 * 5
27. 82 * 44 + 41 - 29
28. 5 * 47 * 14 / 55
29. 88 * 63 - 74
30. 36 / 8 - 84

@ -0,0 +1,60 @@
1. (71 + 82) / 8 / 92 / 43
2. 69 + 76 * 84 - 29 + 25
3. (7 + 50) - 43
4. 11 + 65
5. 90 - 100 + 60 - 79 + 85
6. 3 / 93 * 99
7. (84 / 32) + 49
8. 95 + 80 / 30 - 76
9. (5 - 33) / 30 + 39
10. (98 / 12) / 68 / 76
11. 58 * 6
12. 98 - 98
13. 94
14. (48 + 70) - 20 / 66 * 98
15. 34 - 92
16. 51 * 35 - 33
17. (65 * 79) / 32
18. (72 / 71) + 62 * 36 + 31
19. 74 - 18
20. 38 / 91 / 11 * 49
21. 34 - 28 * 77 / 63
22. 13 + 14 / 66 - 15 * 91
23. 36 / 55 * 95
24. 49 + 90 / 54 + 69 / 43
25. 2 - 53 / 28 / 11
26. 17 * 90 + 76 / 89 + 46
27. 85
28. 30 * 64 + 29 + 25
29. 55 / 8 - 100 - 31 - 25
30. 4 + 69 - 62

@ -0,0 +1,60 @@
1. 11 - 80 * 58
2. 85 - 30 - 65 * 55 / 36
3. 27 * 20 + 40 * 27 * 26
4. 6 * 7
5. (37 * 32) / 57 / 89
6. (93 - 76) - 32
7. 12 / 21 / 21 + 95
8. 1 / 86 * 43
9. (82 * 89) - 4
10. 4 * 69 + 26
11. 90 - 10 * 50 * 43
12. 96 + 21 - 69
13. 69 - 44
14. 62 * 29 * 79
15. (47 + 16) * 17 * 81 / 36
16. 19 - 70 + 70
17. (8 / 38) * 91 - 82
18. 98 + 82
19. (28 * 6) - 37
20. 27
21. 67 / 75 * 89 - 56
22. 63 + 15 - 65 / 99 + 58
23. (7 + 34) - 82 - 72 - 36
24. 26 + 74
25. 22 + 69 + 16 * 19
26. 68 / 19 + 98
27. 78 * 28 - 90 + 88
28. (17 + 96) * 62 - 4
29. 18 / 1 * 78 + 41 - 19
30. 47 * 20

@ -0,0 +1,60 @@
1. (80 / 51) * 27 / 32
2. 76
3. 43 * 69 * 36
4. 25 - 3 * 65
5. 74 * 73 * 7 + 28
6. 52 - 65
7. 77 - 82 + 17 - 64 - 87
8. 15 * 78
9. (96 / 2) / 13 / 38 * 85
10. 23 * 22 + 70 - 14
11. 93 * 10
12. 47 / 33 / 5 - 67
13. 34 + 99
14. 58 + 39 / 83 - 65
15. 34 * 81
16. (23 / 4) + 96
17. 57 - 57 + 81
18. (100 / 30) / 17 + 25 / 67
19. 57 - 96
20. 14 * 50 - 89 + 85 - 50
21. 2 * 59 / 48 / 61 + 41
22. 16 * 1 + 87 + 94
23. (5 / 12) - 14 * 1 * 27
24. 47 * 4
25. (19 * 71) / 97 * 21 - 97
26. 53 - 66 - 13 / 37 + 53
27. 71 + 62 - 81 - 88
28. 56 + 38
29. 75 - 60 * 58
30. 3 + 37 - 56 / 41 + 75

@ -0,0 +1,60 @@
1. 76 + 13 - 61 + 27 + 91
2. 28 / 79 / 12
3. 3 - 17
4. 53 - 75 - 26
5. 41 - 14 * 76
6. 61 - 94 + 60
7. 77 / 5 + 39 / 55 - 100
8. (87 * 69) - 47
9. 92 / 61 + 39 / 38
10. (44 / 67) - 53
11. (41 + 86) - 59 * 53
12. 50 / 83 * 77 - 59
13. (84 * 41) * 9 + 74
14. (86 * 36) / 36 + 98
15. 73 + 92 + 55
16. 12 / 100 + 53
17. (17 / 24) + 42 * 20 * 99
18. 43
19. 56 / 99 / 16 * 75 * 51
20. 99 * 22 / 35
21. 3 * 25 / 11 / 73 / 17
22. (19 * 58) + 38
23. 68 * 79 / 54 + 52 + 69
24. 52
25. 33 * 100
26. (26 - 23) * 8 * 21 - 41
27. 21 + 91
28. 87 + 29
29. 72 - 18 * 80
30. 59 + 82

@ -0,0 +1,60 @@
1. 9 / 5
2. 63 - 13
3. 6 * 22 / 58 / 69 / 49
4. 78 * 75 + 59 / 39 / 91
5. 44 / 13 / 70 + 48 / 74
6. 68 - 39
7. 97
8. 38 - 16 - 57 - 46 / 53
9. 42 + 98 - 2 / 85 / 54
10. 92 + 66
11. 7 - 81 + 13 / 14 + 42
12. 100 / 27 + 80 + 54 + 61
13. 51 / 18 * 70
14. 11 - 51 - 94 + 34
15. (74 - 54) + 42 * 91 - 88
16. 36 - 19 / 29
17. 51 - 14 / 96 * 43
18. 32 * 73
19. 2 / 38 - 48 + 95 - 76
20. 24 - 95 * 62 / 52
21. 86 * 58 / 97 / 72 * 4
22. 64 - 35 + 100
23. (34 / 62) * 99 - 42
24. (25 - 84) * 76 / 16 / 60
25. 15
26. 15 / 89
27. 89 / 98
28. 14 * 73 * 25
29. (69 + 30) * 41 + 87 * 52
30. 72 + 56 + 100

@ -0,0 +1,60 @@
1. 7 - 77 * 40
2. (47 + 12) + 84 * 39 + 81
3. (9 + 22) * 12 + 19
4. 86 / 22
5. (84 - 63) * 24 + 12
6. 55 + 9
7. 62 / 86 - 84 * 9 - 87
8. 13 - 71
9. 63 - 1 * 5
10. 18 + 67 - 22
11. 37 + 90 + 7
12. 76 * 77 * 4 / 99
13. 92 + 6 + 51 + 58 * 25
14. 54 - 94
15. 100 + 15 + 27 / 14
16. 51 / 35 + 79 * 78 * 13
17. 95 / 62 + 31
18. 43 - 51 * 93 + 66
19. 65 - 87
20. (33 / 21) - 87
21. 93 + 95 - 63 + 99 / 27
22. 64 - 97
23. 26 * 8 - 21
24. 57 * 10 + 19 / 31 * 45
25. 90 - 60
26. 42 / 56
27. 17 + 95 + 41 * 100 / 43
28. 49 / 30 / 68
29. 62 + 35 - 25
30. 59 + 7 - 98 + 20

@ -0,0 +1,60 @@
1. 97 * 24 * 72 - 86 + 3
2. 25 - 22 - 93 * 90
3. 2 - 95 + 14
4. 80 - 41
5. 65 / 59
6. 45 + 94 / 17 + 67 * 84
7. (8 - 30) - 8
8. 67 * 28 + 81 + 37
9. (8 / 4) - 64 / 14
10. 55 * 94
11. 24 / 91
12. 53 - 28 * 96 * 92
13. 2 / 57 / 58 - 71
14. 74 + 26 - 92 * 100
15. (20 - 3) / 36 + 59
16. 84
17. 66 * 26 - 19 - 50 + 43
18. 65 + 6 - 36
19. 41 / 44 + 76
20. 76 * 17 * 53
21. 26 * 90 / 32
22. (78 - 83) - 9 - 89
23. 83 - 100 + 94 * 19
24. 61 - 98
25. 32 + 88 * 99
26. (92 * 28) * 28 / 51 + 88
27. 10 - 17
28. (93 - 50) * 53 - 53 - 72
29. 70
30. 60 * 44

@ -0,0 +1,60 @@
1. 79 * 49 + 63 / 33
2. 16 / 96 - 14 * 85 * 74
3. 26 + 64 - 48 / 36 * 23
4. 2 - 58
5. 20
6. 10
7. 20 / 24
8. 41 + 93 + 88
9. 23 - 58 + 41 * 4 - 42
10. 23 + 8 / 18 / 73 + 59
11. 19 * 22
12. 88 / 68 - 10
13. 74 / 80 / 67 / 66 - 76
14. 6 - 50 + 7 + 64
15. 3 / 39
16. 1 / 23 * 7
17. 96 + 45
18. 56 - 51 / 92
19. 66 * 56 / 74 * 86
20. 94 - 77 + 73 - 18
21. 90 / 26
22. 63 / 62
23. 89 - 66
24. (51 / 50) / 86 - 61
25. 78 - 83 + 75
26. 74 * 89 / 58 - 68 / 25
27. 33 / 35
28. 74 + 64 / 46
29. (5 + 24) - 3
30. 54

@ -0,0 +1,60 @@
1. 89 + 44 + 65
2. (86 / 7) - 44
3. 23 / 86
4. 94 * 56 * 90
5. (35 + 88) + 88 / 92 - 64
6. 10 - 67 / 28 * 12
7. 41 - 93 / 40
8. 68 / 19 / 64 + 75
9. 41 * 68
10. 74 + 62 - 76 - 4
11. 86 + 47 - 8 + 31 * 6
12. 83 * 99
13. 44 + 85 * 91 + 23
14. 5 - 47 / 82
15. (37 / 78) + 91
16. 27 + 82 / 27 * 87
17. 17 - 98 * 73 * 85 - 98
18. 89 * 74 * 5 + 97
19. 31 / 32 + 16 - 17
20. 60 + 46
21. 93 * 59
22. 70 / 4
23. (9 / 35) - 45
24. 90 - 79 + 4 + 93
25. (74 - 83) * 35 * 100
26. 4 + 57
27. 40 + 52
28. 28 + 60
29. 86 * 84 * 87 + 89 * 13
30. 12 / 7

@ -0,0 +1,56 @@
1. sqrt(89) * 64
2. 15 * 45 + 41 / (66)^2
3. 22 + sqrt(98)
4. 13 / (23)^2 - 62 * 32 / 75
5. (70)^2
6. sqrt(22) - 8 + 62 - 26 + 28
7. (1)^2
8. (93)^2
9. 62 - 69 / 93 / (52)^2
10. (50 * 42) - (82)^2
11. sqrt(100) * 24
12. 29 + 2 * 23 + 65 - sqrt(20)
13. 52 * 22 / 24 / sqrt(29) - 50
14. 73 * 75 / sqrt(32)
15. (sqrt(7) - 91) - 76
16. 64 - 81 - sqrt(75) * 35 - 92
17. 38 * sqrt(39) - 95 / 58
18. (31 - 71) - (89)^2 / 66
19. (68 * 25) / 78 - sqrt(49)
20. (17)^2 * 35
21. 20 / (46)^2 - 97
22. 9 - (91)^2 - 55 * 88 + 59
23. sqrt(67)
24. sqrt(90) + 65 + 92
25. (86)^2
26. 43 + 85 * sqrt(73)
27. 55 - (94)^2
28. sqrt(34) / 51 - 25 / 4
Loading…
Cancel
Save