离散数学,自反性

list1 = [] #定义一个空列表
str1 = input("请输入数值,用空格隔开:")
list2 = str1.split(" ") #list2用来存储输入的字符串,用空格分割
list2_length = len(list2)
i = 0
while i <= list2_length-1:
    list1.append(int(list2.pop())) #将list2中的数据转换为整型并赋值给list1
    i += 1
list1.reverse()
import math
a=int(math.sqrt(len(list1)))
import numpy
A = numpy.array(list1).reshape(a,a)
#print(A)
B =A.diagonal()#获取对角线元素,组成向量
#print(B)
if numpy.all(B==1):
    print ('是自反性')
elif numpy.all(B==0):
    print ('是反自反性')
if (A==A.T).all():
    print('是对称性')
flag1=0
for i in  range(0,a):
     for j in range(0,a):
         if A[i,j]==1 and i!=j and A[j,i]==0:
             flag1=1
if(i==a-1 and j==a-1 and flag1==1):
     print('是反对称性')
C=A.dot(A)
flag2=1
for i in  range(0,a):
     for j in range(0,a):
         if C[i,j]==1 and  A[j,i]!=1:
             flag2=0
if(i==a-1 and j==a-1 and flag2==1):
     print('是传递性')


 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值