OzoneAsai commited on
Commit
99994b9
·
1 Parent(s): 7257565

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -0
app.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 必要なライブラリをインポート
2
+ import streamlit as st
3
+ import random
4
+ from sympy import symbols, expand
5
+
6
+ # Streamlitアプリのタイトルを設定
7
+ st.title("数学問題アプリ")
8
+
9
+ # サイドバーに説明を追加
10
+ st.sidebar.header("構文説明")
11
+ st.sidebar.markdown("$2x$と書きたい場合は「$2*x$」と、記述するように。また、平方根は$sqrt(2)$というように記述するように。")
12
+ st.sidebar.markdown("割り算は`/`を使うように。掛け算は`*`を使うように。")
13
+
14
+ # メインのコンテンツを作成
15
+ selected_function = st.sidebar.selectbox("問題形式を選択", ["因数分解"])
16
+ x = symbols("x")
17
+
18
+ # 因数分解
19
+ if selected_function == "因数分解":
20
+ min_value = st.number_input("乱数の最小値を入力してください:", value=-10)
21
+ max_value = st.number_input("乱数の最大値を入力してください:", value=10)
22
+
23
+ # 生成ボタン
24
+ generate_button = st.button("問題を生成する")
25
+
26
+ if generate_button:
27
+ generated_problems = []
28
+ # 例: x**2 + 5*x + 6
29
+ a = random.randint(min_value, max_value)
30
+ b = random.randint(min_value, max_value)
31
+ init_problem = f"(x + {a})*(x + {b})"
32
+ expression = expand(init_problem)
33
+ if expression:
34
+ st.success(f"問題: {expression}")
35
+ st.latex(expression)
36
+ generated_problems.append(expression)
37
+
38
+ # 答えを開示するボタン
39
+ reveal_button = st.button("答えを開示する")
40
+
41
+ if reveal_button:
42
+ st.success(f"答え: {init_problem}")
43
+ st.latex(init_problem)