- 博客(7)
- 收藏
- 关注
原创 圆等分坐标计算程序(计算优化 无浮点计算)
利用三角诱导公式可以转换成任意正弦余弦值, 推导过程省略, 详见注释.采用查表法可以大幅加速未配备硬件浮点运算的计算机。
2023-03-24 08:38:44
714
原创 组合数的简易计算
组合数是一种常见的数学运算.目录算法代码算法(nk)=n!k!⋅(n−k)!=∏i=n−knik!\dbinom {n}{k} =\frac{ n! }{k!\cdot (n-k)!} = \frac{\prod_{i=n-k}^{n} i}{k!} \\\\(kn)=k!⋅(n−k)!n!=k!∏i=n−kni(nk)=(nn−k)\dbinom {n}{k} = \dbinom {n}{n-k}(kn)=(n−kn)代码int combination( int n,
2022-01-30 05:59:50
820
原创 线性代数库 Armadillo 学习笔记
线性代数库 Armadillo 学习笔记项目环境Xcode 项目配置前置代码矩阵基本操作全零矩阵全一矩阵对角矩阵打印一个矩阵修改获取矩阵元素获取某行某列获取对角向量转置矩阵逆矩阵矩阵迹行列式值实用案例解线性方程组项目环境LanguagePackageIDEComplierOSc99++Armadillo-10.7.5Xcode 12clang-1200.0.32.21OS Cataline 10.15.7Xcode 项目配置分别添加 libblas.tbd,l
2022-01-16 15:40:53
696
原创 [性能优化 ] 化绝对为相对
[性能优化 ] 化绝对为相对1. 核心思路2. 乘2 vs 左移?3. 绝对指针 vs 迭代指针 ?4. 公式代入计算 vs 前后做差计算 ?1. 核心思路站在巨人的肩膀, 不香吗? 何必重新计算? 重复的计算是阻碍计算机性能发挥的一大杀手. 假设给我一个数列, 通项和递推关系, 我一定会选择后者, 花费计算可能更少, 效率更高.2. 乘2 vs 左移?众所周知, 遇到2的指数, 通过左右移可以快速计算.但是请注意!假设我想要计算 (a-b)/2的平方, 例如 a=14, b=29. 我们知道
2021-07-05 00:28:24
134
2021-04-09
[奇技淫巧] C语言 做malloc的会计师1. 核心思路1) malloc动态分配2. 用于DEBUG的malloc函数1) 接口设计2) 分析需要收集的数据3) 代码4) 锦上添花5) 结果3. 参考资料1. 核心思路动态内存是计算机程序必不可少的组件. 在程序运行当中, 对于编译之初未知的数据流大小, 有时需要保存下来,这时就需要动态地请求内存空间. 一般地, 动态内存空间取自于堆(Heap). 所以堆是堆, 栈(Stack)是栈 两者不要放在一起, 容易混淆.1) malloc动态分配ma
2021-04-09 18:57:27
96
原创 [奇技淫巧] C语言 交换内存内容 memswap
[奇技淫巧] C语言 交换内存内容 memswap1. 核心思路2. memswap函数1) 接口设计2) 需求分析3) 代码3. 参考资料1. 核心思路位运算是一个很奇妙的工具. 而最容易被人所忽略的就是异或 ^ 运算符. 对于任何的异或运算都有:a^0 = aa^a = 0异或运算满足交换律和结合律, 因此a^b = b^aa^b^c = a^c^b = b^c^a = ... 由于有上述这些特性, 如果做这样的运算, 假设有两个变量 a 与 ba = a^bb = a^ba
2021-03-31 11:50:21
1238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人