一道编程题
3个商人各带一个随从乘船渡河,现有一只小船只能容纳两个人,由他们自己划行。若在河的任一岸的随从数多于商人,他们就可能抢劫财物。但渡河的方案由商人制定。试编制一个程序,求解出可行的所有的决策,
要求能计算n个商人的情况,当然n不会很大
KAI,我又要来与你作对了。^_^ 我很不赞同你的看法,或者可以说是非常反对你的观点。 [QUOTE]你这个商人摆渡的题有什么意义呢?拿到哪家公司去,哪家公司都不会看的。 如果你写个办公软件,不管写得好坏,拿到哪家公司去,哪家公司都会认真看一下的。至少运行一遍。[/QUOTE] 仅此题本身而言是没有实际上的应用价值,是没有一个公司会看上一眼。你把这类题叫做趣味题,是,是趣味题,但是,做它的目的不是为“趣味”而“趣味”。目的是煅炼思维方式,拓展思路。相对于做一个工程得到的经验或知识,前者是得到的经验或知识是一个广泛意义上的经验或知识,后者是一个局部的狭隘的的经验或知识。(此处我不知道怎么表达,我知道我这样说是有问题,因为后者得到的也不完全是一个局部的狭隘的的经验或知识,我这样说只是想特出这一点) 为什么这么说?前者得到的经验或知识,可以在不同的工程、不同的语言、不同编译器应用。而后者,却是具体到某一问题的的经验或知识。 一个良好的思维方式或者说一个具有拓展性的思考对程序员来说是相当重要的,而不是API。对API的无知是可以即时弥补的,比如,你可以随时备一个win API大全。而对没有一个良好的思维方式或者说不具有拓展性的思考对程序员来说是致命的,你写的程序是没有效率的。 我看到这么一句话;CPU是客户的,不是程序员的。 我也不否认,做一个工程或者也能得到一些思维方式煅炼,但是,我觉得不会有多少也不应该有多少。 所以两者都不可少。特别是你说的趣味题,我认为不但初学阶段该做(但是,我不提倡过份),而且任何一个阶段都应该“温故而知新”。