组合数学?没用。
算法设计是干什么?如果能够直接推出公式f(x),哪里还需要计算机算法设计?
凡是推荐组合数学的,都是不懂计算机算法设计的。
具体数学?隔靴搔痒。看起来讲得头头是道,实际屁用没有。
要学算法,首先要明白计算的类型,特别是现在竞赛题的类型。
根据计算的需求,首先是能够推出最终公式的计算,当时的计算机性能差,计算量巨大,如何计算这种问题。这种题目,现在在竞赛中,绝少出现。典型的例子,就是大数计算。但是,把最近十年的题目翻翻,有这样的题目吗?至少最近十年,这种类型的题目没有出现过。
另一种就是无法推最终公式的计算。这类题目,只能找到下一步的步骤,即递推计算,即第n步计算与前n-i步有关系。
递推计算又分为两种,第一种是可以“轻松”找到递推关系的,当然,第二种是很难找到递推关系的。
具体数字中的和式的递归式、底和顶的递推式、整除、同余就是第一种。具体数学给出一些“简单”问题的递推式的求法,即生成函数。其实,只要不太笨,都很容易的。当然,对于初中生来说,还是稍微难了一点点,主要是概念。不过,还算好。
真正难的,就是很难找递推关系的,很难用生成函数找到递推式的。
组合数学这本书提到的覆盖、幻方、四色等问题(但是这本书根本没有给出解法),就是很难找到递推式的问题。
用我们专业理论和术语来说,在求解一个问题时,涉及两个方面:一是该问题的表示,如果一个问题找不到一个合适的表示方法,就谈不上对它求解;二是选择一种相对合适的求解方法。
现在竞赛的题目,难就难在找不到一个合适的表示方法。而组合数学和具体数学讲了半天,就是讲,问题的表示。
笑!!!!!!
【 在 GGbod 的大作中提到: 】
: xxxxxx
: 最近跟小孩聊到信息学竞赛目前遇到的困难,小孩感觉遇到的难题都是组合数学的知识,思维上想不到那种算法设计方法。
: 想了一下,准备把对应的数学知识整理出来,按照数学竞赛的强度去学习、强化练习刷题走一遍。
: ...................
--
FROM 58.19.16.*