OzoneAsai commited on
Commit
9493d12
·
1 Parent(s): cf4d634

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -7
app.py CHANGED
@@ -1,7 +1,7 @@
1
  # 必要なライブラリをインポート
2
  import streamlit as st
3
  import random
4
- from sympy import symbols, expand, Eq
5
 
6
  # Streamlitアプリのタイトルを設定
7
  st.title("数学問題アプリ")
@@ -12,26 +12,29 @@ st.sidebar.markdown("$2x$と書きたい場合は「$2*x$」と、記述する
12
  st.sidebar.markdown("割り算は`/`を使うように。掛け算は`*`を使うように。")
13
 
14
  # メインのコンテンツを作成
15
- selected_function = st.sidebar.selectbox("問題形式を選択", ["因数分解","方程式"])
16
  x = symbols("x")
 
 
17
  def factor_expression(expression):
18
  x = symbols('x')
19
  factored_expression = factor(expression)
20
 
21
  st.success(f"因数分解結果: {factored_expression}")
22
  st.latex(factored_expression)
 
 
23
  def generate_equation():
24
-
25
  x = symbols('x')
26
  generated_problems = []
27
  # 例: x**2 + 5*x + 6
28
- wh=random.choice(["1","2"])
29
- if wh==1:
30
  a = random.randint(min_value, max_value)
31
  b = random.randint(min_value, max_value)
32
  init_problem = f"(x + {a})*(x + {b})"
33
  AExpression = expand(init_problem)
34
- if wh==2:
35
  a = random.randint(min_value, max_value)
36
  b = random.randint(min_value, max_value)
37
  init_problem = f"{a}*x + {b}"
@@ -45,6 +48,7 @@ def generate_equation():
45
 
46
  return equation
47
 
 
48
  # 因数分解
49
  if selected_function == "因数分解":
50
  min_value = st.number_input("乱数の最小値を入力してください:", value=-10)
@@ -63,6 +67,7 @@ if selected_function == "因数分解":
63
  if expression:
64
  st.success(f"問題: {expression}")
65
  st.latex(expression)
 
66
  if selected_function == "方程式":
67
  min_value = st.number_input("乱数の最小値を入力してください:", value=-10)
68
  max_value = st.number_input("乱数の最大値を入力してください:", value=10)
@@ -72,7 +77,7 @@ if selected_function == "方程式":
72
  if generate_button:
73
  # 方程式の生成
74
  equation = generate_equation()
75
-
76
  # 生成した方程式の表示
77
  st.success(f"生成した方程式: {equation}")
78
  st.latex(equation)
 
1
  # 必要なライブラリをインポート
2
  import streamlit as st
3
  import random
4
+ from sympy import symbols, factor, Eq, solve
5
 
6
  # Streamlitアプリのタイトルを設定
7
  st.title("数学問題アプリ")
 
12
  st.sidebar.markdown("割り算は`/`を使うように。掛け算は`*`を使うように。")
13
 
14
  # メインのコンテンツを作成
15
+ 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
+ if wh == 2:
38
  a = random.randint(min_value, max_value)
39
  b = random.randint(min_value, max_value)
40
  init_problem = f"{a}*x + {b}"
 
48
 
49
  return equation
50
 
51
+
52
  # 因数分解
53
  if selected_function == "因数分解":
54
  min_value = st.number_input("乱数の最小値を入力してください:", value=-10)
 
67
  if expression:
68
  st.success(f"問題: {expression}")
69
  st.latex(expression)
70
+
71
  if selected_function == "方程式":
72
  min_value = st.number_input("乱数の最小値を入力してください:", value=-10)
73
  max_value = st.number_input("乱数の最大値を入力してください:", value=10)
 
77
  if generate_button:
78
  # 方程式の生成
79
  equation = generate_equation()
80
+
81
  # 生成した方程式の表示
82
  st.success(f"生成した方程式: {equation}")
83
  st.latex(equation)