命题公式的范式python

别再死记硬背!用Python代码5分钟搞懂离散数学里的命题逻辑 本文通过Python代码实践,帮助读者快速理解离散数学中的命题逻辑概念,包括真值表、逻辑联结词和范式转换。通过代码实现和可视化工具,让抽象的命题逻辑变得直观易懂,适合编程爱好者和数学学习者。 阅读详情

命题公式的范式

程序: 输入一个命题公式, 输出合取/析取范式 主合取/析取范式

在这里插入图片描述

class Logic:
    def __init__(self, expr):
        # 合取 & 析取 | 非 ! 单条件 $ 双条件 @ 括号 ()
        # 初始化类,设置表达式列表、符号列表、命题元素列表
        self.expr_list = [i for i in expr if i != ' ']
        self.symbol_list = ['&', '|', '!', '$', '@', '(', ')']
        self.element_list = []
        for s in self.expr_list:
            if s.isalpha() and s not in self.element_list:
                self.element_list.append(s)
            else:
                assert s in self.symbol_list or s.isalpha()
        self.prn_list = self.get_prn()  # 获取逆波兰表达式
        print("PRN: ", self.prn_list)
        self.truth_table = self.get_truth_table(self.prn_list, self.element_list)  # 获取真值表
        self.print_truth_table(self.element_list, self.truth_table)  # 打印真值表

    def get_prn(self):
        # 获取逆波兰表达式
       	pass

    def print_truth_table(self, element_list, truth_table):
        # 打印真值表
        pass

    def get_truth_table(self, rpn_expr, element_list):
        # 获取真值表
        pass

    def get_cnf(self):
        # 主合取范式
        pass

    def get_dnf(self):
        # 主析取范式
        pass


if __name__ == '__main__':
    expr = "(P & R)|(S & R)| !P"
    logic = Logic(expr)

    print("CNF: ", logic.get_cnf())
    print("DNF: ", logic.get_dnf())

    expr1 = "(p $ !q) $ r"
    logic1 = Logic(expr1)
    print("CNF: ", logic1.get_cnf())
    print("DNF: ", logic1.get_dnf())

离散数学实战:用Python代码自动生成主析取范式主合取范式 本文详细介绍了如何使用Python代码自动生成离散数学中的主析取范式主合取范式。通过构建命题逻辑的Python表示、真值表生成算法以及极小项与极大项的编码,实现从理论到实践的跨越。文章提供了完整的代码示例,帮助计算机专业学生和编程爱好者掌握这一实用技能,适用于逻辑电路设计、自动定理证明等领域。 阅读详情

相关推荐

从零开始:手把手教你用Python实现主析取范式主合取范式的自动转换

本文详细介绍了如何使用Python实现主析取范式(PDNF)与主合取范式(PCNF)的自动转换,涵盖逻辑公式Python表示、真值表生成算法以及两种范式间的转换方法。通过代码示例和分步讲解,帮助开发者掌握这一在逻辑电路设计和人工智能推理中广泛应用的核心技术。

weixin_29268385的博客 404

命题逻辑实战:如何用Python自动生成主析取范式代码+步骤详解)

本文详细介绍了如何使用Python自动生成命题逻辑中的主析取范式,包括真值表构建、极小项提取和范式生成的全过程。通过代码示例和步骤详解,帮助读者掌握命题逻辑的自动化处理技术,适用于离散数学和计算机科学领域的实际应用。

weixin_29054195的博客 360

别再死记硬背了!用Python代码5分钟搞懂离散数学里的命题逻辑(附真值表生成脚本)

本文通过Python代码实践,帮助读者直观理解离散数学中的命题逻辑。从基础命题表示到真值表生成,再到逻辑等价式验证和命题公式分类,文章详细展示了如何用编程思维掌握抽象概念,特别提供了真值表生成脚本,让学习过程更加高效有趣。

weixin_33501543的博客 322

Python(离散数学实验)求不超过4个命题变元任意公式主合取范式主析取范式、真值表和成真赋值

计算离散数学中公式主析取范式主合取范式,成真赋值,真值表

qq_40282331的博客 6478

python主析取范式_python应用之求主析取范式主合取范式

任意输入一个命题公式,计算并输出其真值表以及主析取范式主合取范式思路:大概就是将蕴含,等价,异或进行转化,然后使用eval()计算#! /usr/bin/env python3# -*- coding:utf-8 -*-sInput = '' #输入命题公式字符串sParse = '' #化简后的sInputvariable = [] #保存公式中的变量ornl = [] #主析取范式最小项a...

weixin_39662834的博客 2192

【日常Python-5】求真值表和主范式

1.问题描述 真值表是命题逻辑中的一个十分重要的概念,利用它几乎可以解决命题逻辑中的所有问题。例如,利用命题公式的真值表,可以判断命题公式的类型、求命题公式的主范式、判断两命题公式是否等价。(背景:离散数学) 2.实验代码 # -*- coding:gbk -*- sInput = '' #输入命题公式字符串 sParse = '' #化简后的sInput variable = [] #保存公...

一只会飞的鲲的博客 3218

命题逻辑中真值表方法的应用

离散数学

fankeyang的博客 1784

离散作业:主范式的实现

#用程序实现主范式 sInput = '' #输入命题公式字符串 sParse = '' #化简后的sInput variable = [] #保存公式中的变量 ornl = [] #主析取范式最小项 andnl = [] #主合取范式最大项 fore = '' #符号前面的部分 back = '' #符号后面的部分 def myinput(): global sInput print("请输入一个任意命题公式(原子命题用字母表示,'~'表示非 '&'表示合取 '|'表示析取 .

JHJ15713942621的博客 224

离散数学 习题篇——生成主范式

给定公式中的命题变元,以及所有极小项(或极大项)的解释,可以计算出对应主范式。 在LaTeX中,公式按照这种格式:把符号串放入一对$中。 于是$P\vee \neg Q\wedge R$会显示为P∨¬Q∧R。 Word的公式编辑器也是用相同的格式。 ¬符号对应于\neg。(为让输入输出更简单,注意后面有一个空格。) ∨符号对应于\vee。(为让输入输出更简单,注意后面有一个空格。) ∧符号对应于\...

weixin_44941062的博客 1268

别再死记硬背了!用Python手把手实现离散数学主范式生成器(附完整源码)

本文介绍如何用Python实现离散数学中的主范式生成器,帮助用户通过可视化工具掌握主析取范式主合取范式的转换。文章详细解析了公式解析器、真值表引擎和范式生成算法的核心设计,并提供了完整源码,适用于逻辑电路设计和算法验证等应用场景。

weixin_30823001的博客 183

Python自动化离散数学范式计算:从真值表到主析取/合取范式

离散数学是计算机科学的理论基础,其核心概念如命题逻辑、真值表和逻辑范式,直接对应计算机底层的逻辑运算与电路设计。理解命题公式的表示与求值原理,是将抽象数学思维转化为可计算模型的关键。通过构建抽象语法树(AST)和递归求值算法,可以自动化生成真值表,并基于真值表直接推导出主析取范式(PDNF)和主合取范式(PCNF)。这一技术不仅解决了手工推演易出错、效率低的问题,更在算法设计、电路验证和软件测试等领域具有重要价值。本文以Python实现为例,详细解析了如何将命题公式转化为数据结构,并自动化完成真值表生成与范

336

离散数学命题逻辑实战:用Python自动生成真值表与主析取范式

本文通过Python编程实战,详细演示了如何自动生成命题逻辑公式的真值表与主析取范式。文章从构建公式的抽象语法树(AST)入手,逐步实现了公式解析、真值计算、赋值枚举及范式转换算法,将离散数学中的抽象理论转化为可执行的代码,帮助读者在理解命题逻辑核心概念的同时掌握其自动化实现方法。

9o8p7i6u5y的博客 527

别再死记硬背了!用Python代码帮你秒懂离散数学的命题逻辑(附真值表生成器)

本文通过Python代码实战演示如何快速掌握离散数学中的命题逻辑,包括真值表生成器、逻辑公式验证及可视化工具。通过代码实现德摩根律、分配律等抽象概念,帮助读者直观理解命题逻辑,提升学习效率和应用能力。

weixin_33749131的博客 109

别再死记硬背了!用Python代码帮你秒懂离散数学里的命题逻辑(附真值表生成脚本)

本文通过Python代码实践,将离散数学中的命题逻辑理论转化为可运行的脚本,帮助读者轻松理解命题逻辑的核心概念。文章详细介绍了逻辑运算的Python实现、真值表生成、逻辑等价式验证、命题公式分类以及范式转换等实用技巧,让抽象的数学符号变得直观易懂。

weixin_32660831的博客 223

别再死记硬背了!用Python代码帮你搞定离散数学命题逻辑(附真值表生成脚本)

本文介绍如何利用Python代码简化离散数学中的命题逻辑学习,包括真值表生成、范式计算和推理验证等核心内容。通过自动化脚本和可视化工具,帮助读者直观理解抽象概念,提升学习效率,特别适合计算机科学学生和编程爱好者。

weixin_33713707的博客 299

离散数学实战解析:命题公式类型判定与优化方法

本文深入解析离散数学中命题公式的类型判定与优化方法,涵盖重言式、矛盾式和可满足式的定义与判断技巧。通过真值表法和等值变换法的对比,提供高效判定策略,并结合Python代码实现实战优化,帮助读者掌握逻辑验证的核心技术。

weixin_30772105的博客 445

离散数学实战:用Python代码实现谓词逻辑9大经典题型(左孝凌版)

本文通过Python和SymPy库,将左孝凌版离散数学中抽象的谓词逻辑理论转化为可执行的代码实践。详细讲解了如何实现命题符号化、约束变元换名、量词消去、前束范式转换以及谓词演算推理等9大经典题型,帮助读者在编程中深化对全称量词、存在量词等核心概念的理解,有效提升逻辑思维与编程能力。

linux6sysadmin的博客 419

从编程思维看离散数学:Python如何帮你自动判断命题公式类型?

本文探讨了如何利用Python编程来自动化判断离散数学中的命题公式类型,包括重言式、矛盾式和可满足式。通过构建真值表生成器和范式计算算法,展示了编程与数学的完美结合,显著提升了逻辑分析的效率和准确性。文章还介绍了性能优化策略及其在数字电路验证、软件需求分析等领域的实际应用。

weixin_42526101的博客 183
上一篇: CS564: Assignment 5
下一篇: CS4386AIGameProgramming
todcode
博客等级 码龄7年 359粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值