离散数学实验报告记录
———————————————————————————————— 作者: ———————————————————————————————— 日期:
2
实 验 报 告
(2016 / 2017 学年 第 一 学期)
课程名称
离散数学
实验名称 利用真值表法求取主析取范式以及主合取范
式的实现
3
实 验 报 告
实验名称 利用真值表法求取主析取范式以及主合取范式的实现 实验类型 验证 实验学时 4 实验时间 指导教师 一、 实验目的和要求 内容: 编程实现用真值表法求取任意数量变量的合式公式的主析取范式和主合取范式。 要求: 能够列出任意合式公式的真值表并给出相应主析取和主合取范式。 二、实验环境(实验设备) X86架构计算机 操作系统:Windows 7 32bit IDE: CodeBlokcs 16.02 编程语言:C++ 编译器:GCC 4
三、实验原理及内容 内容: 编程实现用真值表法求取任意数量变量的合式公式的主析取范式和主合取范式。 原理: 先将中缀表达式转换成后缀表达式,再将后缀表达式中每一个字母变量一一赋值,用递归枚举的方法枚举所有赋值情况,并且用map映射将每一个字母变量与当前被枚举的值一一映射,对每一种赋值情况调用后缀表达式计算函数计算后缀表达式的值,打印真假情况。如果是真,记录到名为zhen的vector不定长数组中,如果是假,记录到名为jia的vector不定长数组中。最后根据zhen和jia的不定长数组来打印主析取范式和主合取范式。
此程序可以实现任意数量的字母变量的主析取范式求取和主合取范式求取,以及真值表打印。 5