8月1日训练笔记

今天学习完了数论剩余部分的内容,主要从素数部分到最后,素数那一节,学习了判别素数的几种方法,之前没有接触过的就是线性筛,注意两个关键处,,无论是否素数都经过第一个关键处。第一个关键处筛除合数,第二个关键处终止条件,避免重复筛除。之后学习了几个定理,唯一分解,威尔逊,费马定理,和一些题目方法的推导有关,特别注意费马小定理,注意条件。之后看了素数测试的内容,学了素数测试的思想和步骤,后面那个例题直接用了费马定理来检测,感觉不是特别好,用二次探测定理改进会更好一些。之后学习了欧拉定理,了解了欧拉函数和常用的几个引理,在后面学习了pollard rho 算法来分解大数,了解它的思路,后面跟那个例题结合了素数检测的内容,让我学习了很多新的知识,包括快速积,随机数的生成,平方检测法改进米勒罗宾素数测试和Floyd的环优化方法等等,那个例题还是不错的,有些地方还不是很清楚,还要进一步研究。晚上重点学习了BSGS算法,主要学习了它的思路,要注意原始和扩展方法的区别,扩展没有素数限制,在原始基础上加上消除因子操作即可,这里面用到了hash存储,我没有看明白那两个模板,到是后面那个例题看得差不多,通过那个例题,我进一步了BSGS的步骤和从hash表中查找的方法,对这一部分内容有了个大体的认识和理解,有些细节还不太明白,还要研究。欧拉函数的线性筛在前面有道例题那里接触过,看起来比较容易,注意判断i是不是p[j]的约数,后面那个例题我用自己方法写的,题解没怎么看懂,回去再看看。

今天最大的收获是利用其它的网络资料扩展学习,学到了很多新的知识,也对课本上内容理解的更加透彻,以后要保持下去,多去了解相关的知识,明天复习一下数论,开始组合数学,加油。

猜你喜欢

转载自blog.csdn.net/sdauguanweihong/article/details/81349013