【數學知識】高一的集合知識的Python編程實現


本博客適合高中學生入門編程知識學習,從高中的數學概念轉換到其python實現,提高自身對編程的學習興趣。以後將會出一個面向高中同學的系列。

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# 在jupyter notebook顯示圖片

Python3 集合概念

集合(set)是一個無序的不重複元素序列。

可以使用大括號 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因爲 { } 是用來創建一個空字典。

創建格式:

# 不重複
A = {1, 1, 1, 1, 1, 1, 1}
print(A)
print("集合A的元素個數:",len(A))
{1}
集合A的元素個數: 1

集合與元素的關係

# 高一必修一:集合與元素的關係
# 判斷元素與集合的關係
def element_in_set(setA, elementa):
    '''
    setA: 集合
    elementa: 元素
    '''
    if elementa in setA:
        return True
    else:
        return False
    
a = 1
A = {1,3,5,7,9}
print(element_in_set(A, a))
b = 2
print(element_in_set(A, b))
True
False
# 這相當於python代碼的a in A
print(a in A)
True

集合與集合的關係

# 高一必修一:集合與集合的關係
def setBcontainsetA(setA,setB):
    '''
    函數用於確定setA是否包含於setB
    setA: 集合A
    setB: 集合B
    返回結果:
    1:集合A是集合B的子集
    -1:集合B是集合A的子集
    0:集合B=集合A
    -1000:集合B與集合A沒有關係
    '''
    # 如果A中任意一個元素都是B的元素,稱集合A是集合B的子集
    # for語句
    for a in setA:
        # print(a) 編程過程遇到一個錯誤,形式參數爲setA,
        # 但是“for a in setA:”語句中,setA寫爲了A
        if a not in setB:
            return False # 集合A不是集合B的子集
            #print(a)
        else:
            continue
    # 如果遍歷完集合A都沒有找到不存在於集合B的元素,則返回True
    return True # 集合A是集合B的子集
def setBwithsetA(setA,setB):  
    if setBcontainsetA(setA,setB) is True and setBcontainsetA(setB,setA) is False:
        return 1 # 集合A是集合B的子集
    if setBcontainsetA(setA,setB) is False and setBcontainsetA(setB,setA) is True:
        return -1 # 集合B是集合A的子集
    if setBcontainsetA(setA,setB) is True and setBcontainsetA(setB,setA) is True:
        return 0  # 集合B=集合A
    if setBcontainsetA(setA,setB) is False and setBcontainsetA(setB,setA) is False:
        return -1000 # 集合B與集合A沒有關係
    
# 測試函數
A = {1,3,5,7,9}
B = {1,3,5}
C = {1,3,5,7,9}
D = {2,4,6}
print(setBwithsetA(A,B))
print(setBwithsetA(A,C))
print(setBwithsetA(A,D))
print(setBwithsetA(A,B))

-1
0
-1000
-1

集合與集合的運算

## 集合的交運算
A = {1,2,3,4,5,6}
B = {1,2,3}
C = A.intersection(B) # C=AB
print("集合A與B的交運算",C)
{1, 2, 3}
## 集合的並運算
A = {1,2,3,4,5,6}
B = {1,2,3}
C = A.union(B) # C=A+B
print("集合A與B的並運算",C)
集合A與B的並運算 {1, 2, 3, 4, 5, 6}
## 集合的差運算
A = {1,2,3,4,5,6}
B = {1,2,3}
C = A.difference(B) # C=A-B
print("集合A與B的差運算",C)
集合A與B的差運算 {4, 5, 6}

【作者簡介】陳藝榮,男,目前在華南理工大學電子與信息學院廣東省人體數據科學工程技術研究中心攻讀博士,擔任IEEE Access、IEEE Photonics Journal的審稿人。兩次獲得美國大學生數學建模競賽(MCM)一等獎,獲得2017年全國大學生數學建模競賽(廣東賽區)一等獎、2018年廣東省大學生電子設計競賽一等獎等科技競賽獎項,主持一項2017-2019年國家級大學生創新訓練項目獲得優秀結題,參與兩項廣東大學生科技創新培育專項資金、一項2018-2019年國家級大學生創新訓練項目獲得良好結題,發表SCI論文4篇,授權實用新型專利8項,受理髮明專利13項。
我的主頁
我的Github
我的CSDN博客
我的Linkedin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章