摘要:文章系统阐述了如何通过主范式教学有效提升学生的工程实践能力。首先以班委选举为教学案例,完整展示了从问题提出、分析到解决的逻辑过程,并对比分析了真值表法与等值演算法在求解主范式方面的优缺点。其次,通过具体的算法设计与编程实现环节,为学生提供了高效的解决方案,显着增强了他们的实践操作能力和逻辑思维水平。最后,结合全加器电路设计的实际应用案例,进一步巩固和深化了学生的工程实践能力培养效果。

关键词:离散数学;主范式;工程实践能力;案例教学;算法设计;电路设计

中图分类号:G642文献标识码:A

文章编号:1009-3044(2025)20-0144-03

0引言

离散数学作为研究离散量结构及其相互关系的数学学科,在计算机科学、信息科学及工程管理等领域具有广泛的应用价值。通过系统学习离散数学理论,学生能够构建坚实的数学基础,为未来的工程实践奠定理论基础。该学科概念和理论具有显着的抽象性与严谨性特征,要求学习者在掌握过程中持续培养抽象思维与逻辑推理能力,这些能力恰恰是工程实践中的核心素养。实践教学环节在离散数学课程体系中占据重要地位,不仅能够帮助学生深入理解理论知识在工程实践中的具体应用,更能显着提升其问题分析与解决能力。此外,实践教学还能有效激发学生的创新意识和实践热情,实现理论知识与工程实践的有机融合。

当前离散数学教学存在若干亟待解决的问题。课程内容呈现碎片化特征,部分教师过分强调理论知识的学习,却忽视了与工程实践的有效衔接。这种教学方式导致学生虽然掌握了基础概念和理论框架,但在实际工程问题解决中难以灵活运用。更值得关注的是,传统的“教师主导型”教学模式仍然普遍存在,这种单向的知识传递方式缺乏必要的师生互动和思维启发,既难以调动学生的学习积极性,也不利于其工程实践能力的系统培养。

针对上述问题,本研究选取主范式教学作为突破口,深入探讨其在培养学生工程实践能力方面的有效路径。作为数理逻辑的核心概念,主范式在编译原理、数据结构及软件工程等计算机领域具有重要的应用价值[1]。研究表明,主范式教学能够有效搭建理论与实践的桥梁,是强化学生工程实践能力的理想教学内容载体。

1主范式的定义

对于给定的命题公式,如果它有一个等价公式,仅由小项的析取所组成,则该等价式称作原式的主析取范式。反之,如果它有一个等价公式,仅由大项的合取所组成,则该等价式称作原式的主合取范式[2]。例如,给定包含2个变元的命题公式(P↔Q),它的主析(合)取范式为:

(P↔Q)⇔⇔((¬¬PP∧∨¬QQ))∧∨(¬(QP∧∨QP))((主主析合取取范范式式))其中每个小项或大项中都包含2个变元P和Q,且P和Q的顺序是一致的。可见,主范式的格式十分整齐美观,教师可以引导学生如何欣赏主范式。同时,可以得出任何一个命题公式的主合取范式或主析取范式都是唯一的。

2问题的提出

教师可以将主范式的理论知识与工程实践中的具体问题相结合,设计典型的教学案例。通过分析这些案例,学生能够直观地理解主范式在实际问题中的应用价值。

主范式在逻辑推理中发挥着关键作用。在离散数学的推理过程中,通常采用从已知前提出发逐步推导出结论的方法。当需要从已知前提推导未知结论时,可以将所有前提构成一个合取式,然后求解该合取式的主范式。基于主范式的唯一性特征,最终求得的主析取范式或主合取范式即为所要推导的结论。

以下班委选举案例就是主范式在逻辑推理中的典型应用实例,具体描述如下:

在一次班委选举中,张红、李进和王顺三位同学选进班委。甲、乙、丙三位同学做出了如下预测:甲说:张红为班长,李进为生活委员;

乙说:王顺为班长,张红为生活委员;

丙说:李进为班长,张红为学习委员。

班委名单公布后,发现甲、乙、丙三位同学恰好都说对了一半。

问:张红、李进、王顺各担任什么职务?

3问题的分析

教师可以组织学生分组进行讨论,让学生在团队合作中完成案例的分析。在小组讨论过程中,学生可以学会如何与他人协作、沟通和分享资源,从而增强团队合作能力。

教师引导学生分析上述案例。通过教师的引导和学生的讨论,得出如下分析过程:

1)抽象出原子命题。

原子命题是指在结构上不能再分解出其他命题的命题,也称为简单命题。例如:“张红为班长”就是一个原子命题,“张红”是主语部分,“为班长”是谓语部分,这两部分不能再分解,否则就没有确定含义。

因此,抽象出的原子命题如下:

A:张红为班长,B:王顺为班长,C:李进为班长,

D:李进为生活委员,E:张红为生活委员,F:张红为学习委员。

2)把甲、乙、丙三位同学的推测翻译成命题公式。

因为每位同学都只说对了一半,所以双条件式两边一个为真一个为假。

甲的预测:A↔¬D(简记为公式G1);

乙的预测:B↔¬E(简记为公式G2);

丙的预测:C↔¬F(简记为公式G3)。

3)归纳其他约束条件。

由于一个人只能担任一个职务,例如:张红只能担任一个职务,所以“张红为班长”和“张红为学习委员”这两个命题只能有一个为真,因此双条件式两边一个为真一个为假,即A↔¬F(简记为公式G4)。同理得出C↔¬D(简记为公式G5)。

同时一个职务只能由一个人承担,例如:“张红为班长”“王顺为班长”和“李进为班长”这3个命题只能有一个为真,因此双条件式两边一个为真一个为假,即A↔(¬B∧¬C)(简记为公式G6),B↔(¬A∧¬C)(简记为公式G7)和C↔(¬A∧¬B)(简记为公式G8)。

同理得出D↔¬E(简记为公式G9)。

上述命题公式的翻译也是数理逻辑的一个重点,对于培养学生的逻辑思维能力有很大的帮助,要让学生认识到准确的翻译是后面顺利推理的前提。

4)构造最终的命题公式。

以上的命题公式和所有的约束同时成立,最终的复合命题公式G为:G=G1∧G2∧G3∧G4∧G5∧G6∧G7∧G8∧G9。

接下来就是如何求解与命题公式G等价的主范式。对于公式G的主范式,它的每个小项和大项都要包含6个变元。因为要解决的问题是张红、李进和王顺各担任什么职务,也就是说,他们三位分别担任什么职务是并列关系,而小项就是合取式,所以,只须求出与公式G等价的主析取范式就可以解决上述问题。上述分析有助于培养学生的分析能力。

4问题的解决

教师鼓励学生探索不同的方法求解主范式。在寻找最优解的过程中,学生可以学会如何从不同角度思考问题,从而提升创新能力和灵活应变能力。

4.1真值表法

使用真值表法求解主范式的思想是:首先列出公式的真值表,然后选出公式的真值结果为真的所有行,在这样的每一行中,找到其每一个指派所对应的小项,将这些小项进行析取即得到了相应的主析取范式;再选出公式的真值结果为假的所有行,在这样的每一行中,找到其每一个指派所对应的大项,将这些大项进行合取即得到了相应的主合取范式[3-4]。

任何形式的命题公式都可以使用真值表法求解主范式。真值表法易于学生理解和计算,上述公式G的主范式可以使用真值表法求解,然而公式G中包含6个变元,真值表中需要列出26=64种不同的真值指派,计算量很大,容易出错。因此,解决上述问题使用真值表法不是最佳选择。

上述分析可以让学生体会到理论上的解决不等于问题的彻底解决,引导学生积极探索其他更好的方法。

4.2等值演算法

1)首先将公式中的联结词↔或→化归成∧、∨、┐,再用德摩根律将┐移到命题变元之前,最后用分配律、结合律将公式归约为析取范式或合取范式。

2)去掉析取范式中为永假的合取式或合取范式中为永真的析取式,再将范式中重复出现的项和相同的变元合并。

3)若析取范式的某一项中缺少该命题公式中所规定的命题变元,则可用公式:(¬P∨P)∧Q⇔Q将命题变元P补进去,并利用分配律展开,然后合并相同的项;若合取范式的某一项中缺少该命题公式中所规定的命题变元,则可用公式:(¬P∧P)∨Q⇔Q将命题变元P补进去,并利用分配律展开,然后合并相同的项。

4)利用等幂律将相同的小项和大项合并,同时利用交换律进行顺序调整,由此可转换成标准的主析取范式和主合取范式[5]。

使用该方法也能够求解G的主范式。然而,G中包含6个变元,在求解主析取范式时,需要把G1到G9的每个公式都等价变换为包含6个变元的小项,然后析取所有不同的小项,最后得到G的主析取范式。以G1为例,G1⇔(¬A∧D)∨(A∧¬Q),一个合取式中每加一个变元,就变成2个合取式的析取,加4个变元就变成16个合取式的析取。这样G1就变成32个合取式的析取。可想而知,9个公式转换的工作量非常大。因此,解决上述问题使用等值演算法也不是最佳选择。

上述分析可以让学生认识到探索精神的重要性。

4.3编程实现

虽然上述两种方法都能求解G的主范式,但存在计算量过大的问题。考虑到计算机擅长从数据组合中筛选满足约束条件的解,教师可以指导学生通过编程来解决这一问题,这既能提升计算效率,又能锻炼学生的编程实践能力。根据真值表法求解主范式的思想,首先需要列出公式G的64种不同的真值指派,这里使用循环实现,每个变元循环取值2次(为真一次,为假一次),6个变元6层循环即可;然后计算公式G在不同指派下的真值,如果在某种指派下G的真值为真,输出该真值指派;最后对所有为真的指派所对应的小项进行析取,即得到了G的主析取范式。具体的算法如下:

ffoorr((BA==00;;BAlt;lt;==11;;BA++++))ffoorr((CD==00;;CDlt;lt;==11;;CD++++))ffoorr((FE==00;;FElt;lt;==11;;FE++++)){GG21==dduu__imimpp(B(A,!,E!D););

GG45==dduu__iimmpp((CA,,!!DF));;

GG67==dduu__iimmpp((BA,,!!ABamp;amp;amp;amp;!!CC));;

GG89==dduu__iimmpp((CD,,!!AEamp;);amp;!B);

8amp;amp;GG9=;G1amp;amp;G2amp;amp;G3amp;amp;G4amp;amp;G5amp;amp;G6amp;amp;G7amp;amp;Gi{fp(rGin=t=f(1\")ABCDEF|G\n\");pprriinnttff((\"\"-%-d--%-d--%-d--%-d--%-d-\%n\"d);|%d\n\",A,B,C,D,E,F,G);}}从上面的算法可以看出,一个6层循环就把G的主析取范式的计算问题解决了,这对于循环语句的运用也是极好的训练。这里的du_imp()是实现双条件运算的函数,教师引导学生编程实现du_imp()函数的功能,可以提高学生对于函数的运用能力。du_imp()函数的代码如下:

i{nrettduurn_i(m(!pp)(|i|nqt)amp;p,amp;in(t(!qq))||p);}教师使用学生熟悉的C语言运行此程序,结果如图1所示。从图1可以看出,公式G只在一种真值指派下为真,也就是说,G的主析取范式中只有一个小项。当公式G为真时,B、D和F为真,即王顺为班长,李进为生活委员,张红为学习委员。编程实现的方法快速求解了上述问题,该方法解决了真值表法和等值演算法计算量大的问题,同时计算的准确性高。

上述教学过程能够激发学生学习和自由探索的兴趣,提高课堂教学质量。学生可以先通过理解与模仿,再自主进行创造性学习与研究。

5其他应用

教师可以引导学生在课后拓展思考主范式在其他领域的应用,这对培养学生的科研探索能力具有重要意义。最直接的应用场景当属数字电路设计领域,以全加器电路设计为例进行说明。全加器作为数字电路的基础功能模块,主要用于实现带进位输入的二进制加法运算。在该电路的设计过程中,主范式能够有效地分析和简化逻辑表达式,进而实现电路结构的优化设计。由此可见,全加器的电路设计完全可以作为展示主范式实际应用的典型教学案例。

1)列出全加器的真值表,如表1所示。表1中A、B为两个加数,C为来自低位的进位,S为本位和,D为向高位的进位。

2)根据表1,可以推导出S和D的主析取范式。

S⇔(¬A∧¬B∧C)∨(¬A∧B∧¬C)∨(A∧¬B∧¬C)∨(A∧B∧C)D⇔(¬A∧B∧C)∨(A∧¬B∧C)∨(A∧B∧¬C)∨(A∧3B)化∧简C)S和D的主范式,可以消除冗余的逻辑项,减少所需的基本逻辑门数量。

S⇔(¬A∧B∧¬C)∨(A∧¬B∧¬C)∨(A∧B∧C)∨(¬A∧¬B∧C)

⇔(((¬A∧B)∨(A∧¬B))∧¬C)∨(((A∧B)∨(¬A∧¬B))∧C)

⇔((A↔¬B)∧¬C)∨(¬(A↔¬B)∧C)

⇔(A↔¬B)↔¬C

D⇔(¬A∧B∧C)∨(A∧¬B∧C)∨(A∧B∧¬C)∨(A∧B∧C)

⇔(((¬A∧B)∨(A∧¬B))∧C)∨((A∧B)∧(¬C∨C))

4)化简后的⇔逻((A辑↔表¬达B)式∧可C)以∨(直A∧接B用)于电路实现

表达式A↔¬B用异或门实现,A∧B用与门实现,A∨B用或门实现。根据步骤3)化简的逻辑表达式设计全加器的逻辑组合电路,如图2所示。

通过上述的分析和电路设计,一方面可以使学生深入理解主范式在电路设计中的应用,另一方面可以强化学生的工程实践能力。

6结束语

本文以班委选举案例为切入点,系统阐述了如何通过主范式教学培养学生的工程实践能力。研究结果表明,通过将理论知识与实际工程问题相结合,并指导学生完成问题分析、算法设计和编程实现的全过程,能够显着提升学生的实践操作能力和逻辑推理能力。文章进一步探讨了主范式在全加器电路设计中的具体应用,验证了该方法对强化学生工程实践能力的有效性。未来研究可拓展主范式在其他工程领域的应用范围,并开发更多具有代表性的教学案例。

参考文献:

[1]2黄01忠6,铣35(,3周):5榕1-.5主4.范式的求解及其应用[J].武夷学院学报,

[2]王艳,郭键.基于计算机学科情感培养的离散数学教学模式探索[J].计算机教育,2016(3):19-21.

[3]左孝淩,李为监,刘永才.离散数学[M].上海:上海科学献出版社,1982.

[4]李凡.离散数学课程中主范式求解问题的教学研究[J].课程教育研究,2017(17):131.

[5]白昊月.主范式及其应用[J].知识文库,2019(10):66-67.

【通联编辑:王力】