注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Seaeagle's Nest

谁也说不清,他为什么飞,他需要什么……

 
 
 

日志

 
 
关于我

The sun rises. An eagle files up towards the haven, and suddenly stopped, almost as if it's frozen in the blue sky. No one knows, why the eagle flies, what he needs...

网易考拉推荐

一题多解的意义--读《怎样解题表》的一些感想  

2012-06-23 16:09:01|  分类: 数学好玩 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

         多年前在搞ACM程序竞赛的时候,曾经遇到一个问题,要求把N个数的组合情况都罗列出来。记得当时用了这么个很复杂的算法:

         (1)列出1个数的情况 (共N种)

          (2)对于已列出的一个k个数的序列,派生出两个分支:

          a)用下一个数;

          b)不用下一个数;

        (3)递归步骤(2),直至最后一个数被讨论完全为止。

         应该说,这是一种深度优先遍历的算法,也确实能够完全正确地解决这个问题。

        但最近遇到了另一个相似的问题,在回顾过去的这个解法的过程中,灵光一闪,考虑到了另一种解法:

        (1)对0到2^(n-1)这些数逐一地用二进制表示;

         (2)若所表示的二进制数的第k位为1,则表示第k个数在此序列中,否则该数不在这个序列中。由此每个二进制数生成一个序列。

       很显然,第二种算法简便易行得多。         

        “你能否用别的方法导出这个结果?”是《怎样解题表》在“回顾反思”部分提出的一个启发的问题。

          但在实际生活中,当我们找到个问题的一种可行的解决方法,我们通常习惯性地使用它。原因往往在于我们思考的惰性。当然,在已经有可行方案的时候,再研究其他的解决方法,可能得不到更理想的结果,有种“浪费体力”的味道。

        我以为,“一题多解”的意义在于,开拓思维,使得思路更加通达。在这个过程中,思维能力应该是有潜移默化的提高。不局限于解决一个问题的“一亩三分地”,应该会有更广阔的田野等待着我们去收获。

  评论这张
 
阅读(170)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017