File size: 4,861 Bytes
e26e6f0 423493d 940b7a6 e26e6f0 b56c552 28e57d6 b56c552 940b7a6 b56c552 d73cfae 940b7a6 b56c552 013c7f1 93d1180 013c7f1 b56c552 3057500 93d1180 3057500 93d1180 3057500 93d1180 3057500 93d1180 3057500 93d1180 e26e6f0 d73cfae 0e28850 d73cfae 0e28850 d73cfae 0e28850 d73cfae 0e28850 d73cfae 0e28850 d73cfae b56c552 940b7a6 37ed2b5 6d2862c 37ed2b5 421998a 37ed2b5 423493d 3825094 e26e6f0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
import streamlit as st
from sympy import symbols, solve, S, Interval, Eq
import matplotlib.pyplot as plt
import numpy as np
def main():
st.title("้ๅๆไฝใขใใช")
# ใกใใฅใผใฎ้ธๆ
option = st.sidebar.selectbox("ๆฉ่ฝใ้ธๆใใฆใใ ใใ", ["้ๅใฎๆไฝ", "ๅ
จไฝ้ๅใฎ็ๆ", "่ฃ้ๅใฎ่จ็ฎ", "ไธ็ญๅผใฎ่จ็ฎ"])
if option == "้ๅใฎๆไฝ":
set_operations()
elif option == "ๅ
จไฝ้ๅใฎ็ๆ":
generate_universe()
elif option == "่ฃ้ๅใฎ่จ็ฎ":
complement_operation()
elif option == "ไธ็ญๅผใฎ่จ็ฎ":
inequality_solver()
def parse_set(input_str):
if input_str:
try:
return set(map(int, input_str.split(',')))
except ValueError:
st.error("ๅ
ฅๅใๆญฃใใใใใพใใใใซใณใๅบๅใใฎๆดๆฐใๅ
ฅๅใใฆใใ ใใใ")
return None
else:
st.error("ๅ
ฅๅใ็ฉบใงใใใซใณใๅบๅใใฎๆดๆฐใๅ
ฅๅใใฆใใ ใใใ")
return None
def set_operations():
st.header("้ๅใฎๆไฝ")
with st.form(key='set_operations_form'):
# ใฆใผใถใผๅ
ฅๅ
set1 = st.text_input("้ๅ1 (ใซใณใๅบๅใใง่ฆ็ด ใๅ
ฅๅใใฆใใ ใใ)", "1,2,3")
set2 = st.text_input("้ๅ2 (ใซใณใๅบๅใใง่ฆ็ด ใๅ
ฅๅใใฆใใ ใใ)", "3,4,5")
set3 = st.text_input("้ๅ3 (ใซใณใๅบๅใใง่ฆ็ด ใๅ
ฅๅใใฆใใ ใใ)", "5,6,7")
# ใใฉใผใ ้ไฟกใใฟใณ
submit_button = st.form_submit_button(label='ๅฎ่ก')
if submit_button:
# ๅ
ฅๅใใใๆๅญๅใ้ๅใซๅคๆ
set1 = parse_set(set1)
set2 = parse_set(set2)
set3 = parse_set(set3)
if set1 is not None and set2 is not None and set3 is not None:
# ้ๅใฎๆไฝ
st.subheader("้ๅใฎๆไฝ็ตๆ")
st.subheader("ๅ้ๅ")
union = set1.union(set2, set3)
st.write(union)
st.subheader("็ฉ้ๅ")
intersection = set1.intersection(set2, set3)
if intersection:
st.write(intersection)
else:
st.write("็ฉ้ๅใฎ็ตๆใฏ็ฉบใงใใ")
st.subheader("ๅทฎ้ๅ")
difference = set1.difference(set2, set3)
st.write(difference)
st.subheader("ๅฏพ็งฐๅทฎ")
symmetric_difference = set1.symmetric_difference(set2)
st.write(symmetric_difference)
def generate_universe():
st.header("ๅ
จไฝ้ๅใฎ็ๆ")
with st.form(key='generate_universe_form'):
# ใฆใผใถใผๅ
ฅๅ
initial_value = st.number_input("ๅๆๅค", value=0)
step = st.number_input("ในใใใ", value=1)
num_steps = st.number_input("ๅๆฐ", value=10, min_value=1)
# ใใฉใผใ ้ไฟกใใฟใณ
submit_button = st.form_submit_button(label='็ๆ')
if submit_button:
# ๅ
จไฝ้ๅใฎ็ๆ
universe_set = set(range(initial_value, initial_value + step * num_steps, step))
st.subheader("็ๆใใใๅ
จไฝ้ๅ")
st.write(universe_set)
def complement_operation():
st.header("่ฃ้ๅใฎ่จ็ฎ")
with st.form(key='complement_operation_form'):
# ๅ
จไฝ้ๅใฎๆๅฎ
universe = st.text_input("ๅ
จไฝ้ๅ (ใซใณใๅบๅใใง่ฆ็ด ใๅ
ฅๅใใฆใใ ใใ)", "1,2,3,4,5,6,7,8,9,10")
# ๅฏพ่ฑก้ๅใฎๆๅฎ
target_set = st.text_input("ๅฏพ่ฑก้ๅ (ใซใณใๅบๅใใง่ฆ็ด ใๅ
ฅๅใใฆใใ ใใ)", "1,3,5")
# ใใฉใผใ ้ไฟกใใฟใณ
submit_button = st.form_submit_button(label='่จ็ฎ')
if submit_button:
# ๅ
ฅๅใใใๆๅญๅใ้ๅใซๅคๆ
universe_set = parse_set(universe)
target_set = parse_set(target_set)
if universe_set is not None and target_set is not None:
# ่ฃ้ๅใฎ่จ็ฎ
complement = universe_set.difference(target_set)
st.subheader("่ฃ้ๅใฎ่จ็ฎ็ตๆ")
st.write(complement)
def inequality_solver():
st.header("ไธ็ญๅผใฎ่จ็ฎ")
with st.form(key='inequality_solver_form'):
# ใฆใผใถใผๅ
ฅๅ
inequality_input = st.text_input("ไธ็ญๅผใๅ
ฅๅใใฆใใ ใใ", "2*x >= 2")
# ใใฉใผใ ้ไฟกใใฟใณ
submit_button = st.form_submit_button(label='่งฃใๆฑใใ')
if submit_button:
# ไธ็ญๅผใฎ่งฃใๆฑใใ
x = symbols('x')
inequality = eval(inequality_input)
solution = solve(inequality, x)
st.subheader("ไธ็ญๅผใฎ่งฃ")
st.write(Eq(str(solution).replace("& (x < oo)","")))
if __name__ == "__main__":
main()
|