- 浏览: 70399 次
- 性别:
- 来自: 青岛
最新评论
-
趣味花生牛奶:
真厉害,又长姿势了 但是看不懂
解密随机数生成器(2)——从java源码看线性同余算法 -
哼哼哈哈云卷云舒:
...
推荐系统初探之一 —— 寻找相似的用户 -
布林一角:
我认为加法的定义应该是这样的:(define (add m n ...
SICP学习笔记——丘奇计数与“数”的本质【脑洞大开】 -
monsterhuan:
贴张图片看看嘛
有趣的java彩蛋程序
文章列表
丘奇计数与“数”的本质
学习SICP有一段时间了,对Lambda表达式以及过程为参数等特性的强大并没有概念,直到看到习题2.6中提到的丘奇计数(Church counting),才有种脑洞大开,恍然大悟的赶脚,便迫不及待的和大家分享一下——尼玛,原来“数”还可以这样玩!
首先,题目抛砖引玉,丢出了两个定义,一个是0的定义:
(define zero
(lambda (f)(lambda (x) x)))
然后是操作+1的定义
(define (add-1 n)
(lambda (f)(lambda (x) (f ((n f) x)))))
接着 ...
SICP学习笔记之一迭代与递归(1)
最近开始学学习《SICP(计算机程序的构造和解释)》,不愧是当年MIT的教材,全本书都是干货,每个章节的每个小节都值得认真推敲,仔细思考,自我感觉收获很大。因此我把自己的学习过程通过系列博客分享给大家,望多多交流。
递归与迭代,是计算机算法的重要组成部分,我们都懂得简单的二叉树遍历与二分查找,但是很少有人深入思考二者之间的异同以及关系。这第一篇博客,就跟大家分享一下自己关于递归与迭代的思考。
1 线性递归与迭代
栗一 阶乘的计算
对于阶乘的计算,相信大家都不陌生,考虑到阶乘的定义:
n! = n*(n-1)*(n-2)*…* ...
对于通讯部分框架设计的几点思索
- 博客分类:
- 项目开发
通信者,产品之大事也,死生之地,存亡之道,不可不察。——《唐子兵法》
激动啊,最近成立了的团队,开发我们自己的产品,新手初来乍到,软件的通信部分框架是我和另一个小伙伴花了差不多一晚上讨论出来的,又花了两个通宵以登陆功能为例把流程实践了一遍,还算合理,在此把几天来的部分开发心得和大家交流一下,如有不合理或考虑不周之处也请大家多多指教。
首先简单介绍一下我们的产品——时间银行。这是一个在国外已经流行几十年的点子,旨在鼓励人们互相帮助,增进诚信与消除社会不公。举个简单的例子,张华是一位理发师,它免费帮李萍理发一小时,他就可以把这一小时作为时间币存到时间银行里;如果哪天张华有需求,比如想要找 ...
揭秘网络通信编程(1)——概述
在这个时代,便捷的互联网大大降低了我们获取信息的成本,也深刻地改变了我们的生活方式。每天,有数以亿计的人使用浏览器访问着上百万个网站,使用上百款聊天软件进行着即时通信。那么,在你使用上网和聊天时,有没有想过,你的浏览器是如何与服务器“交流”,得到你想要的网页?你的QQ又是如何跨越几千公里,把消息发到好友的QQ之上的?为了解答这些,我打算从最简单的分析入手,带领大家一步步揭开网络通信的神秘面纱。
一 程序如何通过网络通信?
今夜无眠,不是因为世界杯。
也许只剩这个时间,才能真正静下心来写点东西了。
想用这篇博客,纪念一下最近的心情。
好久不看空间了,前几天翻出自己高中时的照片,感慨万千。
才发现,原来不知何时,我带上了眼镜,同时也任心灵被遮盖,很少表达自己的想法。
那时的我,就总想着如何与众不同,再难的题目也总要找到自己的第二种解法才肯罢休。
仍旧记得,高考结束的那天,所有人都在欢呼的时候,我重新拿起笔,认真地开始写我的南科大自荐信。
一直觉得,那是我距离梦想最近的时刻,天真地认为,自己的梦终于起航,全世界都在为我架起跑道。
已不记得,高考出成绩的那天的心情,只是知道,自从那天起,我的梦一 ...
最近一直在学python语言,从pypi社区下载工具包经常要用到命令行操作,用的多了也渐渐对linux系统产生了兴趣,因此干脆装个虚拟机体验一下。周五基本捣鼓了一整天,算是在Ubuntu下搭建了一套自己的python开发环境,还是挺有成就感的。最大的感受就是——用linux系统真的要有很强的动手能力,windows下的傻瓜操作弱爆了!
一、VirtualBox&Ub
6 对象的创建
学习了上一篇博客的内容,我们可以进一步问一个问题了:假如我们命令python创建一个整数型对象,python内部是怎样从无到有创建一个对象的?
一般来说,方法有两种:一是通过C API创建,一是通过类型对象PyInt_Type创建。
1 用C API创建
所谓C API,就是python设计者在C语言源码中预留给开发者的现成的函数接口,封装好了新建、插入、析构等基本操作,方便用户自由拓展python的功能,当然,他们在python内部也是大量调用的。以新建对象为例,C API主要有两种形式:
1 PyObject* intobj = PyObject_New ...
接触python有段时间了,说实话,当我第一次用的时候就喜欢上了这门语言,那种编程的流畅感真的让人耳目一新。但这将近一年来,我只是用python小打小闹的写个小游戏,分析个数据,还参加了一次数学建模比赛,并没有系 ...
使用Python有一段时间了,感觉小蟒蛇是门在很多方面很给力的语言,不光是它强大的函数式编程,还有他它的可以不创建类和对象来实现面向对象模式的大部分功能——靠的是它强大的数据类型,列表和字典。
用字典的 ...
上篇博客中,我们了解了基于物理现象的真随机数生成器,然而,真随机数产生速度较慢,为了实际计算需要,计算机中的随机数都是由程序算法,也就是某些公式函数生成的,只不过对于同一随机种子与函数,得到的随机数列是一定的,因此得到的随机数可预测且有周期,不能算是真正的随机数,因此称为伪随机数(Pseudo Random Number)。
不过,别看到伪字就瞧不起,这里面也是有学问的,看似几个简简单单的公式可能是前辈们努力了几代的成果,相关的研究可以写好几本书了!顺便提一下,亚裔唯一图灵奖得主姚期智,研究的就是伪随机数生成论(The pseudo random number generating ...
解密随机数生成器(1)——真随机数生成器
从小就一直很好奇,MP3播放器的随机播放功能是如何实现的,今天读到一篇关于随机数的文章,又勾起了我的那时好奇心,索性上下求索,了解了随机数背后的很多知识,顿觉豁然开朗,特意写这篇文章和大家总结分享一下。
其实,随机数在我们身边无处不在。无论是玩扑克牌麻将骰子时的点数,玩LOL时的玩家匹配,还是高大上的量子物理,核聚变,都无一例外地随机数有关,在混沌理论中,这个世界本身就是一系列随机过程的产物——好吧,有点激动,扯得太远了——作为编程爱好者,应该会发现,每一门编程语言必然会有自己的随机数生成函数,常用的比如:C语言std ...
Python Vs MATLAB
- 博客分类:
- Python
Python Vs MATLAB
——从一次数模美赛的亲身经历谈python在数学建模竞赛中的应用
说起数学建模中的编程软件,大部分人都会想到Matlab。Matlab应该是史上功能最强大的一门编程与数学仿真软件,许多复杂的数学问题对它来说 ...
一道逻辑推理题的程序实现(纯属娱乐)
- 博客分类:
- 有趣的程序
一份逻辑推理题的程序求解(纯属自娱自乐)
闲来无聊,看到 QQ空间上转载了一份变态推理题的,至少表示我看了十多分钟无处下手,认识的人中有大神居然真的做出来了。。。我不知道他是们那么做的,不过作为编程爱好者,我第一时间想到的是写个程序把答案找出来(不要吐槽)。于是我就动手了。。。不过,这个简单的还是花了我2个小时。。。
下面,先给大家看一看题目:
这十道题可谓丧心病狂,因为题目答案高度关联,居然出现了多少个A多少个B这样的选项,不做完全卷根本不知道每道题对错。。。我简单分析了一下,也只看出切入点大概在第七八九题和第二题的样子吧,简单的分析就可以大概知道答案整体的
细胞自动机初探之生命游戏
- 博客分类:
- 人工智能
细胞自动机初探——生命游戏
细胞自动机(Cellular Automaton),简单说就是能在生成许多自行演变的“小细胞”的程序,是一种很强大的人工智能实现,强大到几乎可以用来仿真研究社会和自然科学各个领域的问题,比如:构建模拟人群研究经济危机爆发过程,构建模拟生物群落研究生态系统演变,构建微观粒子群研究物理化学问题,构建“军队”模拟军事战场等等。由它引申出了数量地理学等学科,它更是分布式计算中的重要工具。。。。嘿嘿,是不是听起来很高端?想深入了解么?鄙人不才,今天带大家初步了解一下元胞自动机背后的故事。
1950年,计算机之父冯·诺伊曼写了一段程序用来模拟细胞复制过程,这就是最早的细胞 ...
推荐系统初探之二 —— 推荐方法
- 博客分类:
- 机器学习笔记
推荐系统初探之二 —— 推荐方法
在上一篇文章中,我们了解到了两种相似度评价方法:欧几里得距离和皮尔逊相关度方法,其实
类似功能的算法好多,比如Jaccard系数和曼哈顿距离算法等。有兴趣的同学可以登陆http: ...