传统来说应该都是先自己思考然后思考不出来再上网找答案吧?
但是思考多久呢?
比如说最近在学lisp 以前只碰过c和java
基础的语法掌握的差不多了,看到一些入门题
写一个无限长度的 prime lazy-sequence
以前从没有实现过关于质数的算法,对于质数的理解只有他的定义
稍微想一下最白痴的办法就是2到n/2都没法整除就是质数了
再思考下大概可以缩小到测试 2到n^(1/2)
再往上的算法凭个人大概短时间想不出来了,我查了下Sieve of Atkin这个算法大概算最快的之一吧
思考到什么程度好呢? 如果说思考到想不出来更好的方法的话, 大概sieve of atkin我也能花几年的时间想出来吧如果必须要做的话。
实现方面不同的算法肯定不一样 相同的算法也应该会有最优解。自己独立做到什么程度好呢?
总的来说就是学习的时候到底应该参考网上的资料到什么程度呢? 从最基础的语法到完整的实现网上肯定都有。但是什么都不查大概抓破头也写不出来,就算写出来了要不要优化呢? 优化到什么程度呢?查的话到什么程度又是个问题。
但是思考多久呢?
比如说最近在学lisp 以前只碰过c和java
基础的语法掌握的差不多了,看到一些入门题
写一个无限长度的 prime lazy-sequence
以前从没有实现过关于质数的算法,对于质数的理解只有他的定义
稍微想一下最白痴的办法就是2到n/2都没法整除就是质数了
再思考下大概可以缩小到测试 2到n^(1/2)
再往上的算法凭个人大概短时间想不出来了,我查了下Sieve of Atkin这个算法大概算最快的之一吧
思考到什么程度好呢? 如果说思考到想不出来更好的方法的话, 大概sieve of atkin我也能花几年的时间想出来吧如果必须要做的话。
实现方面不同的算法肯定不一样 相同的算法也应该会有最优解。自己独立做到什么程度好呢?
总的来说就是学习的时候到底应该参考网上的资料到什么程度呢? 从最基础的语法到完整的实现网上肯定都有。但是什么都不查大概抓破头也写不出来,就算写出来了要不要优化呢? 优化到什么程度呢?查的话到什么程度又是个问题。