离散数学实验三 偏序关系中盖住关系的求取及格论中有补格的判定(python实现)

本文介绍了使用Python编程完成离散数学实验,目标是求取整除关系上的盖住关系并判断是否为有补格。实验要求对任意正整数,找出其因子构成的偏序集,并确定是否为有补格。通过计算最小公倍数和最大公约数来判断,实验代码虽然起初设计为通用性但最终针对整除关系进行了优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

信安菜狗这学期学了离散数学,做实验的时候发现网上好像没什么python写的实验报告,正好这学期结束了翻出来写一份。
一、 实验目的和要求
目的: 
编程实现整除关系这一偏序关系上所有盖住关系的求取,并判定对应偏序集是否为格。 
要求: 
对任意给定正整数,利用整除关系求所有由其因子构成的集合所构成的格,判断其是否为有补格。
二、实验原理及内容
基本思路延续上一个实验,还是使用字典储存序偶,由于开始时以为要做一个普适性的代码,使用采用的是序偶输入,处理过程也是序偶,后来得知要做的是关于整除的特设代码,所以对代码进行修改,但是基本框架不会有太大改变,也导致了代码看起来十分冗余。

由于整除关系对应的偏序集都是格,所以不用做任何判断,只需要判断是否为有补格。利用性质,首先,格的全上界一定是输入,的正整数,全下界一定是1,所以就根据这个来判断补元。两重循环,如果每个因子都能找到另一个因子,使它们的最小公倍数为输入的正整数,最大公约数为1,那么就是有补格。

因此定义lcm(x,y)和hcf(x,y)寻找最小公倍数和最大公因数, check_com_latice()判断是否是有补格。(本部分懒得写了直接抄的网上的代码块)

import operator
n=0
i=0
s=' '
s1={
   
   }
variable=[]
themax=input("请输入一个整数,验证其上整除的盖住关系以及其是否为有补格:")
themax=eval(themax)

def get_element():#将输入的序偶中的元素全部不重复的提取,以便于后续性质的判定
    global themax,x1,x2
    for i in range(1,themax+1):
        if themax % i is 0:
            t=str(i)
            if t not in variable:
                variable.append(t)
    print(variable)

def creat_ordered_pair():
    global s1,variable,num
    ii=0
    for i in variable:
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值