返回首页

简介
奎因McKluskey算法是用于逻辑(布尔)函数的最小化。这是一个让便宜的组件,并确保使用最简单的解决问题(目的)(电路)所有电气线路的重要方面。无论你需要学习的算法,或者您需要帮助,理解它为您的大学课程,或者你想高科技的算法您的学生在一个图形化的,有吸引力的的方式,或者需要在您的商用电动电路仿真应用程序,它包括这篇文章,特别的附加代码,为您需求
读者应该布尔代数的基本概念(逻辑功能,或经营者,最小项等)。奎因McKluskey算法的知识是最佳选择。 C#和面向对象编程的基本概念需要理解代码,但您可以使用它没有这个罚款。该算法
要正确理解算法,我强烈建议阅读以下的文章,写一个人比我更多的说教能力。
遵循的基本步骤,有如下所示:
第1步:分离成组的基础上,其二进制表示中1的数量最小项。
第2步:比较邻近的群体,并更换有一个有点不同的条款,对。这些术语说是相邻的。一个术语,它包含了几许无以伦比的位的位置,我们可以更换任意两个相邻的条款。一定要马克用于创建通用术语最小项,使他们可以从名单中剔除。
第三步:重复搜索,直到没有新的发现相邻的条款。两项条款已经包含破折号被认为是相邻的,只有当所有虚线职位匹配所有,但一个文本位置包含相同的值。
步骤4:删除重复,并列出所有唯一幸存的条款。说明幸存的条款中所涵盖的是原来的最小项。这些都是所谓的蕴涵,因为它们意味着原始表达式的最小项的存在。 的代码,实际上解决了最小化问题是孤立的,在QM命名空间。这个类可以而且应该被重用,如果你想在代码中的许多变化的图形用户界面,这是完全可能的情况下更换。命名空间包含的类:QMTools处理非算法的相关问题,并处理与算法的实际类。使用
已考虑到了很多关注的接口,它应该很容易与它工作在鼠标的唯一途径。您只要按一下,应该有值1(真),然后按程序对卡诺图的矩形。状态栏显示鼠标下的矩形代表什么长期和每个最小项(基础值10对应的二进制代码)目前设置为"true"。当然,你可以选择你的第2和第6之间的逻辑功能的变量的数量,如果默认值(2)太小。但是要记住值大于4,使用卡诺图变得越来越困难。该算法的工作原理完全更大的价值,但接口不能跟上它的空间不足,。相反,使用的逻辑功能输入一个简单的命令行界面,如果你想这样的功能。输出
(显示的方式,允许你复制),除了最小化的函数的代码提供一系列的列表,显示究竟是如何运行算法的每一步,每一步之后状态的用户(最小项选中或取消选中状态)。我的贡献
除了算法的标准执行,我增加了一个最后的改善。经过四个步骤(去除重复),可能使一些蕴涵别人过时(蕴含A和蕴含B可能完全覆盖蕴含彗星),这是一个贪婪的方法(蕴含,涵盖了最破获的元素被选中,直到有解决没有发现的元素左)。结论
我希望我的代码更容易理解的算法,或者说,它帮助您节省宝贵的时间。请随时发表评论,您的意见和想法大加赞赏。

回答

评论会员:salarkia_saied 时间:2011/12/07
坦克你
这是帮助我的....{ BR}
评论会员:rbunn83815 时间:2011/12/07
很好的文章!您的意见在源代码中的一些英语,但然后别人不。我已经尝试使用在线词典翻译,但大多数都是没有任何回报的理解。我假设是罗马尼亚的语言,但我可以"这回你错了。有没有可能为你增添您的意见,低于罗马尼亚的英文翻译。我想按照你的代码,但的意见将使它更容易遵循。再次感谢伟大的文章!

罗伯特
评论会员:希尔德布兰 时间:2011/12/07
,这将是很好,如果你的Linux版本也可
更多的人将能够使用它。

希尔德布兰胜利者