OzoneAsai commited on
Commit
451ff78
·
1 Parent(s): fdf1b0f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +57 -53
app.py CHANGED
@@ -16,77 +16,81 @@ selected_function = st.sidebar.selectbox("問題形式を選択", ["因数分解
16
  x = symbols("x")
17
 
18
 
19
- def factor_expression(expression):
20
- x = symbols('x')
21
- factored_expression = factor(expression)
22
-
23
- st.success(f"因数分解結果: {factored_expression}")
24
- st.latex(factored_expression)
25
-
26
-
27
  def generate_equation():
28
- x = symbols('x')
29
- generated_problems = []
30
- # 例: x**2 + 5*x + 6
31
  wh = random.choice([1, 2])
 
 
32
  if wh == 1:
33
- a = random.randint(min_value, max_value)
34
- b = random.randint(min_value, max_value)
35
  init_problem = f"(x + {a})*(x + {b})"
36
  AExpression = expand(init_problem)
37
- sAExpression = None # sAExpression を初期化
38
- if wh == 2:
39
- a = random.randint(min_value, max_value)
40
- b = random.randint(min_value, max_value)
41
  init_problem = f"{a}*x + {b}"
42
  AExpression = expand(init_problem)
43
- a = random.randint(min_value, max_value)
44
- b = random.randint(min_value, max_value)
45
  Secondarial_init_problem = f"{a}*x + {b}"
46
  sAExpression = expand(Secondarial_init_problem)
47
- # 方程式の作成
48
- equation = Eq(AExpression, sAExpression)
49
 
50
- return equation
51
 
52
 
53
- # 因数分解
54
- if selected_function == "因数分解":
55
- min_value = st.number_input("乱数の最小値を入力してください:", value=-10)
56
- max_value = st.number_input("乱数の最大値を入力してください:", value=10)
57
 
58
- # 生成ボタン
59
- generate_button = st.button("問題を生成する")
 
 
 
 
60
 
61
- if generate_button:
62
- generated_problems = []
63
- # 例: x**2 + 5*x + 6
64
- a = random.randint(min_value, max_value)
65
- b = random.randint(min_value, max_value)
66
- init_problem = f"(x + {a})*(x + {b})"
67
- expression = expand(init_problem)
68
- if expression:
69
- st.success(f"問題: {expression}")
70
- st.latex(expression)
71
 
72
- if selected_function == "方程式":
 
 
 
73
  min_value = st.number_input("乱数の最小値を入力してください:", value=-10)
74
  max_value = st.number_input("乱数の最大値を入力してください:", value=10)
75
 
76
- # 生成ボタン
77
- generate_button = st.button("問題を生成する")
78
- if generate_button:
79
- # 方程式の生成
80
- equation = generate_equation()
81
 
82
- # 生成した方程式の表示
83
- st.success(f"生成した方程式: {equation}")
84
- st.latex(equation)
85
 
86
- # 解を求めるボタン
87
- solve_button = st.button("解を求める")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
 
89
- if solve_button:
90
- # 方程式の解を求める
91
- solutions = solve(equation)
92
- st.success(f"方程式の解: {solutions}")
 
16
  x = symbols("x")
17
 
18
 
 
 
 
 
 
 
 
 
19
  def generate_equation():
 
 
 
20
  wh = random.choice([1, 2])
21
+ AExpression, sAExpression = None, None
22
+
23
  if wh == 1:
24
+ a, b = [random.randint(min_value, max_value) for _ in range(2)]
 
25
  init_problem = f"(x + {a})*(x + {b})"
26
  AExpression = expand(init_problem)
27
+ elif wh == 2:
28
+ a, b = [random.randint(min_value, max_value) for _ in range(2)]
 
 
29
  init_problem = f"{a}*x + {b}"
30
  AExpression = expand(init_problem)
31
+
32
+ a, b = [random.randint(min_value, max_value) for _ in range(2)]
33
  Secondarial_init_problem = f"{a}*x + {b}"
34
  sAExpression = expand(Secondarial_init_problem)
 
 
35
 
36
+ return Eq(AExpression, sAExpression)
37
 
38
 
39
+ def generate_problem():
40
+ a, b = [random.randint(min_value, max_value) for _ in range(2)]
 
 
41
 
42
+ if selected_function == "因数分解":
43
+ expression = expand(f"(x + {a})*(x + {b})")
44
+ elif selected_function == "方程式":
45
+ expression = generate_equation()
46
+
47
+ return expression
48
 
 
 
 
 
 
 
 
 
 
 
49
 
50
+ # 問題生成ボタン
51
+ generate_button = st.button("問題を生成する")
52
+
53
+ if generate_button:
54
  min_value = st.number_input("乱数の最小値を入力してください:", value=-10)
55
  max_value = st.number_input("乱数の最大値を入力してください:", value=10)
56
 
57
+ expression = generate_problem()
58
+
59
+ # 生成した問題の表示
60
+ st.success(f"生成した問題: {expression}")
61
+ st.latex(expression)
62
 
63
+ # 解を求めるボタン
64
+ solve_button = st.button("解を求める")
 
65
 
66
+ if solve_button and selected_function == "方程式":
67
+ # 方程式の解を求める
68
+ solutions = solve(expression)
69
+ st.success(f"方程式の解: {solutions}")
70
+
71
+ #
72
+ #
73
+ #
74
+ #
75
+ #
76
+ #
77
+
78
+ # 因数分解
79
+ #if selected_function == "因数分解":
80
+ # min_value = st.number_input("乱数の最小値を入力してください:", value=-10)
81
+ # max_value = st.number_input("乱数の最大値を入力してください:", value=10)
82
+ #
83
+ # # 生成ボタン
84
+ # generate_button = st.button("問題を生成する")
85
+ #
86
+ # if generate_button:
87
+ # generated_problems = []
88
+ # # 例: x**2 + 5*x + 6
89
+ # a = random.randint(min_value, max_value)
90
+ # b = random.randint(min_value, max_value)
91
+ # init_problem = f"(x + {a})*(x + {b})"
92
+ # expression = expand(init_problem)
93
+ #if expression:
94
+ # st.success(f"問題: {expression}")
95
+ # st.latex(expression)
96