本博客(http://blog.csdn.net/livelylittlefish )贴出作者(阿波)相关研究、学习内容所做的笔记,欢迎广大朋友指正!
Content
5.1基本思想
5.2 第2次称量过程
5.3 第3次称量过程
5.4如何创建节点?
5.5输出结果
5.6讨论
附录 4 :再改进的方法的代码weight3.1.c/3.2.c/3.3.c
附录 5 :再改进的方法的代码weight3.1.c/3.2.c/3.3.c 的输出结果
附录 7 :一个更简单的方法的代码weight5.1.c/5.2.c/5.3.c
5. 再改进的方法
从上图中,删除那些有分解结果但结果并非所求的节点,包括中间节点和叶子节点,如下图所示。
那么,能否通过编程直接计算求得上图所有正确的解呢?
——一定可以。关键就看怎么编程实现目标了。
5.1 基本思想
在第4节程序的基础上,继续修改代码,删除weight3()函数,直接在weight2()中对第2次称量并对第2次称量的结果进行再分解(即第3次称量),并对第3次分解结果进行判断,只有当该称量过程满足目标时,才建立节点,包括第2层和第3层的节点。这样,没有分解结果的节点(包括第2层和第3层的节点)就不会被建立,如上图,叶子节点全部是正确的分解结果。不仅让问题更直观,且节省了空间,虽然空间并不那么重要。
5.2 第2次称量过程
如上所述,第2次称量过程中要对第2次称量分解的结果进行再分解(第3次称量),并对第3次分解结果进行判断,这就是该方法的重点实现过程,如下。第1次称量过程的代码及具体的代码请参考附录4。