程序员的玩具
文章平均质量分 82
莫彩
首先是一个人,然后是一个程序员
展开
-
python 性能优化
关于程序优化的第一个准则是“不要优化”,第二个准则是“不要优化那些无关紧要的部分”。原创 2023-01-03 00:40:18 · 997 阅读 · 1 评论 -
python中的装饰器
通过查看它的 func_closure 属性可以看出函数闭包特性。装饰器可以链式使用,但是一定要注意使用顺序。原创 2022-11-05 00:27:33 · 333 阅读 · 0 评论 -
形式语言与自动机基础
这个过程完成之后可以把所有的状态对标记为可区分或不可区分,由于不可区分是一种等价关系,具有传递性,所以不可区分关系可以完成对状态的划分。文法 G 的不含非终结符的句子形式称为 G 生成的句子。由文法 G 生成的语言,记作 L(G),指 G 生成的所有句子的集合。若 G 是一个正则文法, 则存在一个有限自动机nfa,使得:T(M) = L(G)。,这里的最小指的是它是所有接受L(M)的dfa中状态数最少的。定理:设L是正则语言,那么总存在正则表达式r使得L=L®。一些特殊类型的符号串为文法 G=(N,原创 2022-10-07 11:17:29 · 716 阅读 · 0 评论 -
Git 原理备忘录
如果你从这里克隆,Git 的 clone 命令会为你自动将其命名为 origin,拉取它的所有数据,创建一个指向它的 master 分支的指针,并且在本地将其命名为 origin/master。你在查看一个经过变基的分支的历史记录时会发现,尽管实际的开发工作是并行的,但它们看上去就像是串行的一样,提交历史是一条直线没有分叉。Git 的分支实质上仅是包含所指对象校验和(长度为 40 的 SHA-1 值字符串)的文件,所以它的创建和销毁都异常高效。而集中式的VCS只是只是取出最新的文件或者快照。原创 2022-10-01 22:52:33 · 650 阅读 · 0 评论 -
python源码剖析(1)—— PyObject
1. Python中的对象Python中一切皆是对象。————Guido van Rossum(1989)这句话只要你学过python,你就很有可能在你的Python学习之旅的前30分钟就已经见过了,但是这句话具体是什么意思呢?一句话来说,就是面向对象中的“类”和“对象”在Python中都是对象。类似于int对象的类型对象,实现了“类的概念”,对类型对象“实例化”得到的实例对象实现了“对象”这个概念。通常的说法是,对象是数据以及基于这些数据的操作的集合。在计算机上,一个对象实际上就是一片被分配原创 2021-05-13 20:08:15 · 515 阅读 · 2 评论 -
基数估计:FM算法
LogLog算法参考《大数据——互联网大规模数据挖掘与分布式处理一书》中所提到的FM算法,下面给出简单的python实现。代码中比较重要的就是testFM函数。重要的参数是each_group_k,表示了LogLog中用后多少位表示桶号,然后对所有元素求平均进行估计。group_num是参考《大数据》书上提到的中位数方法的小改进,就是不只是使用平均进行估计,而是使用不同的哈希函数LogLog算法重复多遍,然后每个LogLog算法内求平均,多个LogLog算法内求中位数。结果改进的并不多,索性直接用一组原创 2021-04-26 01:01:23 · 457 阅读 · 0 评论 -
Ubuntu装机必备
Vimsudo apt install vim搜狗输入法(参考http://www.linuxdiyf.com/linux/22075.html)官网下载系统对应安装包(使用uname -m命令查看系统位数),如果是14以上的系统,尝试直接双击安装,如果成功就无需后续步骤。配置fcitx。因为搜狗中文输入法基于fcitx,而ubuntu系统默认的输入法框架是iBus。 1. 添加源:sudo add-apt-repository ppa:fcitx-team原创 2021-04-23 18:50:29 · 304 阅读 · 0 评论 -
GDB 小技巧
Rank 调试>>> Gdb7.12 search_rank(进入调试环境)>>> set args -server_port=9799>>> r(可以看到正常运行起来了,发一个rank请求,gdb应该有显示进入断点)>>> n (单步调试)奇怪de技能打印数组 v 第 i 个元素>>> p *(v._M_impl._M_start)@i打印智能指针>>> p *req._M_原创 2021-04-23 01:48:56 · 120 阅读 · 0 评论 -
Linux 工作环境配置
终端如果是pc就安装iterm2,富国是远程服务器就跳过该步骤调整字体,主题;熟悉呼出和tab切换快捷键安装完成后,在/bin目录下会多出一个zsh的文件。修改默认终端,执行:【chsh -s /bin/zsh】chsh需要su权限,没有的话可以在bashrc中加入【exec /bin/zsh】此时可以安装autojump了,https://blog.csdn.net/liujan511536/article/details/43560777 或者 https://blog.csdn.n.原创 2021-04-23 01:30:08 · 693 阅读 · 0 评论 -
C++ 沧海拾遗
Tricksemplace_back优于push_backsome_str.find(“abccde”) != std::string::npositer = some_set.erase(iter);实践中提高vector性能的要点是尽量使用reserve(仅次于换编译器和STL实现)。运行期依然不能确定数组的个数,明智的选择是什么也不做,push_back/emplace_back就足够;运行期能确定个数,则应该用reserve,不建议用传递大小的数组构造函数或者调用resize。vecto原创 2021-04-21 00:07:34 · 124 阅读 · 0 评论 -
python 语法拾遗
一些日常工作和学习中收集到的语法细节。原创 2021-04-20 23:56:20 · 142 阅读 · 0 评论 -
地表最强日期正则表达式
1原创 2019-05-11 18:20:47 · 469 阅读 · 0 评论