又是一周时间结束了。这周主要看了数学基础一部分。
第一部分:快速幂
通过分治思想将幂运算划分为两半两半相乘。有递归和非递归形式的代码,相对而言非递归类型的代码行数啥的最少,理解起来其实同样。做了几个题感觉还可以。
第二部分:质数
判断方法:试除法,扫描2—N的1/2次方,检查能否整除N。
筛选方法:Eratosthenes筛选法 标记判断好质数后的倍数,但会出现被标记多次的情况,即可以用线筛,让它成为这个合数的最小质因子,即只会标记一次。
质因数分解:结合判定方法进行分解。这个部分做题相对要少,着重跑了一下各个实现的代码,了解了实现的代码及流程。
第三部分:约数
求约数:试除法,最好理解的,就是看它能不能整除。倍数法(求正约数的集合),即反向求倍数。
第四部分:同余问题
一开始没有太懂,同余是一个新的概念,但主要是欧几里得算法,及欧几里得算法的扩展,刚看到线性同余部分。
动态规划方面,就只往下看了一章,了解但还没有进行应用。
周六去听了同学们的讲课,字符串算法部分,李佳轩同学讲的其实还好,但是有点紧张了,这节课主要是听了个算法思路,例如字典树,模式匹配,倍增等,具体的代码还是要回来好好研究,总有一种听懂了思路但是写不出代码的慌乱感。
这一周把课上能学会的,能听懂的都尽量听懂做完,在各种小段的空闲时间写各科作业以及补笔记,发现提高学习效率之后就可以有更多的时间看代码,学算法了。每周过的都非常充实,但总觉得自己还是完成不了各项任务,在周六的时候问了一下他们的学习进度,发现果然,效率这个东西还是要接着提高。
马上迎来新的一周,要看更多的书,写更多的代码,冲鸭!!