| 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() |
|
|