离散数学实验(一):判断一个关系是否为函数,若是函数,判定其是否为单射、满射或双射

离散数学实验(一)

1、介绍

函数功能为判断任意一个关系是否为函数,若是函数,判定其是否为单射、满射或双射,使用Python实现。本文内容包含了具体代码以及测试。

2、具体代码
# 判断一个关系是不是函数,如是判断其为单射、双射还是满射
# 输入:两个集合,两个集合的关系(序偶)
# 输出:输出判断结果

def typeJudge(X, Y, f):
    flag3 = len(set(f.values())) == len(f.values())
    flag4 = (sorted(Y) == sorted(list(set(f.values()))))
    if flag3 and flag4:
        print("该函数是双射")
    elif flag3:
        print("该函数是单射")
    elif flag4:
        print("该函数是满射")
    else:
        print("该函数既不是单射也不是满射")


def funcJudge(X, Y, f, li):
    flag1 = (set(X) == set(f.keys()))
    flag2 = (len(li) == len(f))
    # print(flag1, flag2)
    if flag1 and flag2:
        typeJudge(X, Y, f)
    elif flag1:
        print("该关系不是函数,与x对应的值不唯一")
    elif flag2:
        print("该关系不是函数,定义域X元素未取完")


if __name__ == '__main__':
    X = list(eval(input("请输入集合X,用逗号隔开:")))
    Y = list(eval(input("请输入集合Y,用逗号隔开:")))
    print("请输入序偶对,用逗号隔开,以“0,0”结束:")
    relation = {}
    li = []
    while True:
        temp = list(eval(input()))
        if temp[0] != 0 and temp[1] != 0:
            relation[temp[0]] = temp[1]
            li.append(temp[0])
        else:
            break
    funcJudge(X, Y, relation, li)
3、测试
(1)测试一

输入:

集合A:{1,2}
集合B:{3,4,5}
关系(序偶):<1,3>, <2,4>, <2,5>

测试结果:

在这里插入图片描述

(2)测试二

输入:

集合A:{1,2,3}
集合B:{4,5}
关系(序偶):<1,4>, <2,5>
测试结果:

在这里插入图片描述

(3)测试三

输入:

集合A:{1,2,3}
集合B:{4,5}
关系(序偶):<1,4>, <2,4>, <2,5>

测试结果:

在这里插入图片描述

(4)测试四

输入:

集合A:{1,2}
集合B:{3,4,5}
关系(序偶):<1,3>, <2,4>

测试结果:

在这里插入图片描述

(5)测试五

输入:

集合A:{1,2,3}
集合B:{4,5}
关系(序偶):<1,4>, <2,5>, < 3,5>

测试结果:

在这里插入图片描述

(6)测试六

输入:

集合A:{1,2,3}
集合B:{4,5,6}
关系(序偶):<1,4>, <2,5>, < 3,6>

测试结果:

在这里插入图片描述

(7)测试七

输入:

集合A:{1,2,3}
集合B:{4,5,6}
关系(序偶):<1,4>, <2,5>, < 3,5>

测试结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值