(1)快速幂1,矩阵快速幂2
序号表示当时的阅读顺序。
(2)快速幂2,矩阵快速幂1
1.快速幂算法感觉理解的不够,样例明白,自己写就有点虚。和gcd()差不多一样,感觉文字描述和代码之间有很大的距离。
2.矩阵快速幂算法,构造矩阵,怎么构造的?推导过程?
3.以前十进制的乘法是: 123*567=123*5*100 + 123*6*10 + 123*7*1。
我突然想到小学列竖式计算乘法的本质,我一直没有把十进制和二进制联系的这么近。感觉很多知识和想法都停留在小学阶段。
4.1001101 * 11010 = 1001101 * 2^4 * 1 + 1001101 * 2^3 * 1 + 1001101 * 2^2 * 0 + 1001101 * 2^1 * 1 + 1001101 * 2^0 * 0。
我感觉后面的程序是从后往前开始计算的,搞不明白b = b / 2然后用来判断奇偶再计算,恰好就满足从后往前这一个顺序。
5.转:究其根本还是那句话:化连续为离散。。很多时候我们并不是为了解决一个问题而使用二进制,更多是时候是为了优化而使用它。所以如果你想让你的程序更加能适应大数据的情况,那么学习学习二进制及其算法思想将会对你有很大帮助。
6.对于f(n)=a*f(n-1)+b*f(n-2),我们可以考虑矩阵这种数学工具,构造矩阵 。
这个时候就可以用上面的快速幂来计算了。 代码与快速幂类似,只是实数乘法变成了矩阵乘法。用个函数写就行了。
矩阵,数学工具,实数乘法/矩阵乘法,突然想到:
1)矩阵的本质是什么?
矩阵乘法:http://www.ruanyifeng.com/blog/2015/09/matrix-multiplication.html
https://www.zhihu.com/question/21351965
https://www.google.com.hk/search?q=%E7%9F%A9%E9%98%B5%E7%9A%84%E6%9C%AC%E8%B4%A8&oq=%E7%9F%A9%E9%98%B5%E7%9A%84%E6%9C%AC%E8%B4%A8&aqs=chrome..69i57j0.3782j0j7&sourceid=chrome&ie=UTF-8
2)实数/矩阵
3)向量/矩阵
4)矩阵的主要应用范围