长除法计算平方根的c++版本(使用gmp高精度计算库)
写在前面
前几天给出了长除法的Python实现, 但是C++毕竟还是要更快的, 只是没有精度支持而已, 后来发现一个叫GMP的库可以实现, 下面来看下具体操作.
安装与构建
如果安装过llvm或者gcc, GMP其实是会附带安装的, 因为这些C编译器都需要GMP作为依赖.
这里我发现一个很奇怪的现象, 由于我电脑中有三种C++编译器, 分别是
xcode自带的clang(被alias为gcc, 14.0.0)
通过brew安装的clang(llvm, 15.0.6)
通过brew安装的gcc(12.2.0)
通过ChatGPT给出的GMP实例:(这个比较复杂, 后面直接用c++的mpz_class替代了)
#include <iostream>
#inclu...
谈谈我对上手macos的体验与感受+macos 常用快捷键一览
写在前面
不知不觉间,我的MacBook Air已经陪伴我走过近两年的时光了, 虽然都说M1芯片是小白鼠, 但是在我的体验中, 除了一些专有软件外, 其他的问题都能得到不错的解决. 这当然要归功于无私奉献的开发者们以及Stack Overflow的热心人们.
在从零开始配置Mac的时候当然也走了很多弯路, 但是现在我能说在配置Mac的一些开发环境方面也算是驾轻就熟.
这篇文章中, 我想从以下几点来说说我的选择与体验.
为什么没有继续使用win
开始学计算机, 最先接触的当然是Windows, 随着见识的增长, 其他操作系统才慢慢走进我的视野, 本科时候虽然使用win, 但是还是对Linux系比较感兴趣, 把Linux shell编程研究了个皮毛, 但是Linux(Ubuntu...
在makefile中使用空格缩进的方法
写在前面
我的编辑器默认都是通过空格代替Tab缩进的, 这就导致在使用Makefile时候会出现下面的错误:
makefile:8: *** missing separator. Stop.
或者:
makefile:7: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
一开始看Stack 好像这个问题无解了, 但是后来一个人的回答让我眼前一亮, 在gnu make的4.2版本之后就可以通过一条语句完成空格代替制表位了:
.RECIPEPREFIX := $(.RECIPEPREFIX)<space>
其中<space>用实际的空格代替, 即可.
...
Makefile Cheatsheet一些常用的代码段
写在前面
基本格式
target ... : prerequisites ...
command
自动化变量
含义
$@
目标文件名
$<
第一个先决条件(文件)的名称(常用)
$^
所有先决条件的名称(去重, 每个规则只出现一次)
$+
规则中所有先决条件列表(包括出现一次的和重复出现多次的)
在markdown代码环境中输入反引号的方法
方法
行间代码当然可以直接输入了, 无压力:
```bash
这里是反引号
```
这时候如果想嵌套表示, 即在代码环境中表示代码环境, 那么就可以这样写:
````
```bash
a=$s
```
````
那么在行内公式中呢? 直接反斜杠转义是不行的, 但是可以用两对反引号来表示, 像下面这样:
``这里是单个反引号`, 你也来试试``
得到的结果如下:
这里是单个反引号`, 你也来试试
那么, 如果只想表示单个的反引号呢? 也很简单:
`` ` ``
用空格隔开即可, 表示如下:
`
总结
用数量多的反引号来嵌套数量少的反引号即可.
编程语言中特殊符号的英文表示
写在前面
最近搞FLTK, 发现总是要复习(预习)一下Makefile的写法的, 但是很多符号不认识含义(这同时也出现在Shell编程中)并且直接google的话并不能搜到符号, 所以就很麻烦了, 后来想到这些符号都有英文读法的呀, 下面那就来一起认识一下, 也相当于学英语了. 参考1.
符号、英文与含义
符号
英文
备注
`
grave, back quote
反引号, 抑音符号, Shell中常用, 当然markdown也是
~
tilde
波浪号, 颚化符号, 按位取反, 有的编程语言中用作不等于...
Fltk的ui设计工具fluid使用方法总结
写在前面
终于又捡起来FLTK了, 先来看看怎么通过FLUID创建一个图形界面并完成回调函数的创建, 参考的是官方教程中关于创建一个CubeView程序的例子, 教程里面很多都与最新版本的FLTK界面不太一致, 但是通过我的摸索还是找出了方法. 下面来分享一下.
创建类
直接点New新建各种类型即可, 一些注意事项在官方文档中给出了, 一些类或者组件的名称都用粗体标出来了(如下图), 需要对应, 不然后面回调函数连接不上.
在CubeViewUI类中主要实现了构造函数以及一个show方法, 用于显示窗体.
最后的结果如下, 这里其实主要是要看清楚是水平组件还是垂直组件, 这个很重要, 其次就是主窗体的大小, 配比要合适.
回调函数
其实就是两行, 主要用于五个主要...
长除法计算平方根的方法总结与代码实现(c++,python)
写在前面
之前总结了计算平方根的方法, 但是并没有给出手算方法的解释, 这次专门写一下手算方法.
据说这个方法是中国的数学家创造的, 我也没深入考证过, 总之就是非常经典了, 因为这个长除法算法(英文:Long Division Algorithm)可以计算任意精度的平方根, 也就是可以算小数点后的任意位, 下面来看看具体的方法与原理.
原理解释
代数
其实原理是基于这样一个式子:
\(x^2=(10a+b)^2\iff x^2-100a^2=(20a+b)b.\tag{*}\)
就是说对于一个两位数$x$, 其平方(设其有4位)有这样的一种表示, 那么如果要计算某一个数$y=x^2$的平方根, 只需要通过长除法, 根据数的前面两位和后面两位迭代计算即可.
当然这样直接说显...
共计 455 篇文章,57 页。
您是Zorch的第 个小伙伴
Hits