数值算法

---恢复内容开始---

我总有一天会把我在这里写的东西排版好后搬到orzer.me上,也许会考虑出版喔. $$ defON#1{left.mathbf{O} kern-.2emleft( {kern -1pt} #1 ight) ight.} defOT#1{left.Theta kern-.2emleft( {kern -1pt} #1 ight) ight.} $$

0. 续&一秒

曰-曰. 序

这篇坑在这里很久了,一直没有什么好的想法.然后最近又AFO了好长一段时间博客也没有更新,就想着要写些什么了.

以前写的那些东西实在是没有意思啦,毕竟什么trivial之类的话谁都会说嘛.

为什么要写数值算法呢?OI中基本可以肯定是考不到这些的了,只能说这是我兴趣相关吧.我这里要写的东西基本上都是轮子而已,前人大都已经造过了质量很高的了.但是人总是会不合时宜的有一些重复造轮子的想法,对于我来说包括但不限于2D渲染,图像处理,排版,3D渲染和计算机代数.计算机代数系统为了提高精确度、速度和解决问题的水平在数值算法和符号算法上做了很多的努力,现在也有很多相当成熟的计算机代数系统了,像MMA,Axiom,Maple,Sympy之类,虽然大多数都有侧重但是功能也是相当完备了,其中大多数都包含了任意精度的数值运算,这些东西肯定是离不开数值算法的啦.

0. 1s. 疫苗

如果是要投入应用的话,除非对自己写法的优越性(包括但不限于速度、内存管理、精度、容错能力、安全性,取决于应用场景)极端自信,否则还是建议使用类似于GNU MP、MPFR这样成熟的库.

1. 算法表

1.1. 任意精度整数

对于两个(n)位的整数

操作 时间复杂度 算法
加法 $OT{n}$ naive 减法 $OT{n}$ naive 乘法 $OT{n^2}$ naive 乘法 $OT{n^{log_2{3}}}$ Karatsuba's algorithm(2-Way Toom-Cook) 乘法 $OT{n^{log_3{5}}}$ 3-Way Toom-Cook 乘法 $OT{n^epsilon}$ High way Toom-Cook(Large constant factor) 乘法 $OT{n^{log_2{3}}}$ Karatsuba's algorithm

---恢复内容结束---

我总有一天会把我在这里写的东西排版好后搬到orzer.me上,也许会考虑出版喔. $$ defON#1{left.mathbf{O} kern-.2emleft( {kern -1pt} #1 ight) ight.} defOT#1{left.Theta kern-.2emleft( {kern -1pt} #1 ight) ight.} $$

0. 续&一秒

曰-曰. 序

这篇坑在这里很久了,一直没有什么好的想法.然后最近又AFO了好长一段时间博客也没有更新,就想着要写些什么了.

以前写的那些东西实在是没有意思啦,毕竟什么trivial之类的话谁都会说嘛.

为什么要写数值算法呢?OI中基本可以肯定是考不到这些的了,只能说这是我兴趣相关吧.我这里要写的东西基本上都是轮子而已,前人大都已经造过了质量很高的了.但是人总是会不合时宜的有一些重复造轮子的想法,对于我来说包括但不限于2D渲染,图像处理,排版,3D渲染和计算机代数.计算机代数系统为了提高精确度、速度和解决问题的水平在数值算法和符号算法上做了很多的努力,现在也有很多相当成熟的计算机代数系统了,像MMA,Axiom,Maple,Sympy之类,虽然大多数都有侧重但是功能也是相当完备了,其中大多数都包含了任意精度的数值运算,这些东西肯定是离不开数值算法的啦.

0. 1s. 疫苗

如果是要投入应用的话,除非对自己写法的优越性(包括但不限于速度、内存管理、精度、容错能力、安全性,取决于应用场景)极端自信,否则还是建议使用类似于GNU MP、MPFR这样成熟的库.

1. 算法表

1.1. 任意精度整数

对于两个(n)位的整数

操作 时间复杂度 算法
加法 $OT{n}$ naive 减法 $OT{n}$ naive 乘法 $OT{n^2}$ naive 乘法 $OT{n^{log_2{3}}}$ Karatsuba's algorithm(2-Way Toom-Cook) 乘法 $OT{n^{log_3{5}}}$ 3-Way Toom-Cook 乘法 $OT{n^epsilon}$ High way Toom-Cook(Large constant factor) 乘法 $OT{n^{log_2{3}}}$ Karatsuba's algorithm
原文地址:https://www.cnblogs.com/tmzbot/p/5034473.html