ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 性格缺陷

性格缺陷

原创 Linux操作系统 作者:clkrst 时间:2007-02-16 00:00:00 0 删除 编辑
“具体数学”第一章中对约瑟夫问题给了一个公式,可以通过二进制移位来求解,我看了觉得特别好,书中继续从这个问题出发,研究了对于类似的线性的迭代函数如何求解,最后指出对于此种形式的迭代,最后的解可以通过不同基数的数字移位实现。

看完之后,第一感觉是比较激动,觉得人家真是聪明,可以想出这么漂亮的解。在blog里面提到这个解法,对于算法的复杂度,因为有公式直接求解,我当时认为是O(1)常量操作。

blog写好之后,又把这段贴到豆瓣上。过了两天,忽然觉得有点不对,因为如果不是两个两个的划掉,那基数就不应该是2啊,那样的话,这种类型的公式就可能涉及到不同基数的数字转换,那应该是O(log(n))的啊。于是我修改了blog和豆瓣里的评论,把里面说的复杂度改成O(log(n))了。

前两天有人开始在豆瓣上回应我的那个评论,质疑这个复杂度,我觉得需要仔细研究一下,于是就开始推导如果三个三个的划掉,最后的公式是什么样的,但发现这个推导不是那么容易的,而书中的确没有给出通常问题的解,所以人家质疑的很对,于是我干脆从评论中删除了关于复杂度的说法。

现在看,准确的说法应该是,对于两个两个划掉的原始约瑟夫问题,书中给出了一个很完美的解,复杂度是O(1);对于通常的约瑟夫问题,书中没有提到解法,所以也无从分析复杂度,只是我猜测可能是O(log(n))的。

这个事情,说明我在思维方式上,比较粗糙,简单的想一下,觉得差不多,就下结论了,缺少仔细的推敲。

还是前两天,itpub上贴了一个题目,出题目的人给了一个解,但是没有给出证明说解是符合要求的,我就尝试了一下,给了一个证明。思路当然并不困难,还是比较简单,但是在最后解三角形的时候,我犯了一个错误,这个错误很快就被人指出了,我也修正了。这个事情和上面说的那个事情是一样的,都是说明在思考过程中,思维还是比较粗,一旦给了一个解,就急急的认可了这个解,而没有去认真推敲这个解是否有漏洞。

思维方式上的这种缺陷,实质上是因为我性格上急躁易冲动,容易想当然,以后要尽量放慢,思维上力求缜密,不求快,但求对。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/67063/viewspace-169292/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 今村昌平
下一篇: 百题留念
请登录后发表评论 登录
全部评论

注册时间:2007-12-19

  • 博文量
    37
  • 访问量
    170992