2017年9月26日
摘要: Python这些年风头一直很盛,占据了很多领域的位置,Web、大数据、人工智能、运维均有它的身影,甚至图形界面做的也很顺,乃至full-stack这个词语刚出来的时候,似乎就是为了描述它。 Python虽有GIL的问题导致多线程无法充分利用多核,但后来的multiprocess可以从多进程的角度来利 阅读全文
posted @ 2017-09-26 20:58 窗户 阅读(18469) 评论(0) 推荐(6) 编辑
  2017年9月24日
摘要: 提到这个名字,很多人会想到前段时间让全世界振奋的围棋人工智能Alphago,想曾经我也了解过一些围棋的AI。我也正想花点时间说说alphago相关的东西,包括alphago的架构以及模型引申等,不过这篇文章里我只说围棋规则的实现,和人工智能无关。 规则 说到围棋规则的实现不得不先说围棋规则,一般来说 阅读全文
posted @ 2017-09-24 16:43 窗户 阅读(5287) 评论(3) 推荐(0) 编辑
  2017年9月21日
摘要: 使用urllib和urllib2,可以轻松实现对http的访问。 以下给个例子,实现对http://127.0.0.1/cgi/test的GET与POST 使用的是平常意义上的query string POST接受json 其中, urllib2的Request方法如果只带一个参数是GET方法,但如 阅读全文
posted @ 2017-09-21 12:07 窗户 阅读(4854) 评论(0) 推荐(0) 编辑
  2017年9月6日
摘要: 想起曾几何时,学习的第一个UNIX-like操作系统。只可惜,从来都是在此操作系统上用C语言编程,而没有用过Sun公司的java。 又几何时,Sun公司慢慢不行了。再后来过了几年,Sun公司把UltraSPARC T1处理器的设计公开了,至今我的硬盘里还保留着其代码,是当初下载下来的,也看了不少,当 阅读全文
posted @ 2017-09-06 21:13 窗户 阅读(187) 评论(0) 推荐(0) 编辑
  2017年9月2日
摘要: 以上是一个示例,测试了私钥加密(签名)/公钥解密(验证),main函数是一个测试 测试一下,先生成2048位公钥、私钥对 编译、文件测试 对比一下 公钥加密、私钥解密就不写了,对着看就会很明白了。 int RSA_public_encrypt(int flen, const unsigned cha 阅读全文
posted @ 2017-09-02 15:44 窗户 阅读(3147) 评论(0) 推荐(0) 编辑
  2017年8月26日
摘要: 此处所谓求逆运算,是指在模乘群里求逆。 第一节里提到互质的两个定义: (1)p,q两整数互质指p,q的最大公约数为1。 (2)p.q两整数互质指存在整数a,b,使得ap+bq=1。 只要明白了欧几里得算法,很容易就可以求出两整数的最大公约数,而这是一个小学时候就学习到的算法。这个算法有个可能让我们更 阅读全文
posted @ 2017-08-26 14:23 窗户 阅读(2583) 评论(0) 推荐(0) 编辑
  2017年8月13日
摘要: 要生成RSA的密钥,第一步就是要寻找质数,本节专讲如何寻找质数。 我们的质数(又称素数)、合数一般是对正整数来讲,质数就是只有1和本身两个的正整数,合数至少有3个约数,而1既不是合数也不是质数。 质数有无穷多个,这个早在古希腊时期就被证明了,使用反证法很容易证明:假设质数只有有限多,分别为a1... 阅读全文
posted @ 2017-08-13 20:16 窗户 阅读(1711) 评论(0) 推荐(0) 编辑
  2017年8月6日
摘要: RSA最终加密、解密都要用到模乘的幂运算,简称模幂运算。 回忆一下RSA,从明文A到密文B B=Ae1%N 对B解密回到明文A,就是 A=Be2%N 其中,一般来说,加密公钥中的e1一般会比较小,取65537居多,但解密的时候,这个e2是一个非常非常大的数,显然,直接通过e2次模乘来解密是不现实的。 阅读全文
posted @ 2017-08-06 17:33 窗户 阅读(3107) 评论(0) 推荐(0) 编辑
  2017年8月3日
摘要: RSA是最常用的非对称加密算法。 所谓非对称加密,就是说有两个密钥,一个密钥加密只可以用另外一个密钥解密,一般一个作为公钥,公开给所有人用来加密用,而另一个用来解密其他拥有公钥的加密结果,叫做私钥。另外,拥有私钥者可以用私钥加密信息,公钥可以解密获得加密内容,从而验证私钥拥有者的身份,这是一种特殊的 阅读全文
posted @ 2017-08-03 23:14 窗户 阅读(1465) 评论(0) 推荐(0) 编辑
  2017年7月25日
摘要: 一个函数从数学上来说可以有无数个函数列收敛于这个函数,那么程序逼近实现来说可以有无数种算法,平方根自然也不例外。 不知道有多少人还记得手算平方根,那是满足每次在结果上添加一位,也就是按位逼近运算结果的唯一算法。至于数学上如何证明这个唯一性我就不说了,数学证明不会有那么多人有兴趣。按位逼近更加适合手算 阅读全文
posted @ 2017-07-25 23:41 窗户 阅读(3798) 评论(0) 推荐(0) 编辑
摘要: 了解了浮点数的存储以及手算平方根的原理,我们可以考虑程序实现了。 先实现一个64位整数的平方根,根据之前的手算平方根,程序也不是那么难写了。 其实,可以合在一起写,代码会短一些,但效率会低那么一点点,而且编译器应该不太容易优化。 不过,我们不需要这个结果。 为了验证其正确性,我们来写个C语言的mai 阅读全文
posted @ 2017-07-25 23:41 窗户 阅读(7393) 评论(0) 推荐(0) 编辑
摘要: 曾经做一个硬件成本极度控制的项目,因为硬件成本极低,并且还需要实现较高的精度测量,过程中也自己用C语言实现了正弦、余弦、反正切、平方根等函数。 以下,无论是在我的实际项目中还是本地的计算机系统,int都是4个字节且机器为小端,除非特别提及,否则都如此默认。按理float的存储没有大小端之分,可是的确 阅读全文
posted @ 2017-07-25 23:40 窗户 阅读(2550) 评论(0) 推荐(0) 编辑
  2017年7月22日
摘要: UNIX/LINUX下有个工具叫sed,起源于ed命令,但没有人机交互,完全是脚本语言。sed虽然是结构化的程序,但其虚拟出来的机器与我们实际机器相差甚远,依靠模式空间和保留空间的交替使用、正则表达式不断替换达到处理的目的。 sed有相当一部分粉丝,就如同lisp那样,因为与众不同,而用sed写出s 阅读全文
posted @ 2017-07-22 21:24 窗户 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 已经很久很久很久,没有真正在正式工作中设计过数字电路,有的只是在业余的时候玩玩。 想起最早的时候,学习数字电路设计,用的是原理图。习惯于用原理图去思考,后来用VHDL,再后来习惯了verilog那和C语言一样的运算符以及简洁的表达,不再喜欢VHDL的累赘。之所以用HDL,最初的想法仅仅是因为原理图画 阅读全文
posted @ 2017-07-22 01:00 窗户 阅读(4325) 评论(0) 推荐(1) 编辑
  2017年6月27日
摘要: 看到自己很多年前写的一篇帖子,觉得有些意义,转录过来,稍加修改。 awk是一种脚本语言,语法接近C语言,我比较喜欢用,gawk甚至可以支持tcp/ip,用起来非常方便。 awk也支持递归,只是awk不支持局部变量,所有的变量都是全局的,于是写递归有些麻烦。本文说白了,也只是借awk说一种编程的思路罢 阅读全文
posted @ 2017-06-27 20:59 窗户 阅读(898) 评论(0) 推荐(0) 编辑