归档 2014年2月

Topcoder SRM使用Python解题需谨慎

喜欢做Topcoder Single Round Match的Pythoners可能已经发现,Topcoder Arena已经允许参赛者使用Python完成SRM的题目了。

然而,在享受用Python做题带来的快乐感受时,有一点可能需要引起Pythoner们注意:

并非所有的SRM题目都保证一定可以用Python来完成,这很大程度上要归咎于Python竞赛引擎的效率问题。

在算法时间复杂度一定的前提下,使用C/C++甚至Java实现的程序执行效率要优于Python。

因此,在完成SRM的题目时,如果对于时间复杂度的要求较高时使用Python需谨慎,此时转而使用C++或者Java来完成或许是更好的选择。

笔者在参加SRM606时,尝试使用Python解答div2的500分题目,代码如下,在challenge阶段被同房间的选手挑战成功了。

系统测试完毕后,通过观察Divion Summary,笔者惊讶的发现使用Python解答500pts的选手中竟无一人通过系统测试,下面是div2 500pts的题目描述及解答:

Marco has a string S composed of lowercase letters. You ...

继续阅读

自然语言VS编程语言

自然语言(人类语言)与编程语言之间有着很多惊人的相似之处。前些天我做了一个关于这两种语言相似性的讨论,惊讶地发现自己很容易就找到了它们之间的许多共同点。

然而实际上,两种语言之间具有如此多的相同之处也尚在情理之中,这两种形式的语言都是非常基础层面上的语言,它们本质上是为同一个目的服务的——那就是沟通。尤其是用来沟通思想和表达方式,有时也可以用来传达指令。

编程语言之间的相似之处比人们乍看上去的还要多得多。这意味着如果你很了解某一门编程语言,学习其他编程语言(至少同类型的编程语言)就变得十分容易。最开始的两种语言是最难学的,但是从学习第三门语言开始就会变得越来越轻松。

这其实与自然语言没什么不同。如果你会说英语,学习其他印欧语系的语言(比如法语和西班牙语)就会比较容易。然而,了解英语对于学习印欧语系以外的语言帮助就没有那么大了——比如印地语、阿拉伯语或者日语,它们与英语、法语相比有着显著的不同。

我的编程语言学习经历就是一个很好的例子。最开始学习的两门编程语言是BASIC和PHP,学完这两种语言之后,再学习其它类似的语言,比如C、C++、C#、MATLAB、Javascript、Ruby和Python就易如反掌了,我只需要了解它们之间的区别就好了。然而 ...

继续阅读

编程语言与自然语言

    从人类(更准确地说是动物)存在时开始,自然语言就已经被人们以口头或者书面的形式所使用了。人是社会化的动物,使用语言相互交流。与之相对,编程语言是随着计算机的发展而发展的,人们需要向计算机输入一些机器能够理解的指令从而得到结果输出。自然语言与编程语言都是为沟通的目的而服务的:前者是人类之间互相交流的方式,而后者是人类与机器相互交流的媒介,它们还是可以从下面几个方面相互区别。

    自然语言与编程语言的一个主要区别在于两种语言的语法。自然语言是灵活可变的并且随着时间的推移而演化,而编程语言是静态的,并且从它诞生之初开始就保持不变。另外,当一个人使用自然语言不小心拼错一个单词时,大多数人并不会介意。但是编程语言一个分号的丢失都会最终导致程序的致命错误,使程序无法使用。换句话说,自然语言具有错误容许的能力,而编程语言无法容许任何错误。

    由于自然语言是用来与其他人沟通的,因此它们和人类一样复杂,词语可以用来传递情感,思想和各种信息对象,形容词和副词还可以强调重点内容,这与编程语言不同。计算机不关心人们在想什么,它们关心的只是接收到的明确指令。因此 ...

继续阅读

SAE Django如何配置Memcached缓存

Django使用Memcached作为缓存后端,可以提升网站的性能。

部署在SAE上的Django应用怎样配置Memcached缓存呢?

步骤一:

在服务管理->Memcache中初始化Memcache服务,并分配合适的容量。

步骤二:

修改settings.py,添加配置:

CACHES = {
	'default': {
		'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
		'LOCATION': '127.0.0.1:11211',
	}
}

MIDDLEWARE_CLASSES = (
    'django.middleware.cache.UpdateCacheMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware',
)

至此,大功告成。

2014最受欢迎的编程语言-来自CodeEval

2014最受欢迎的编程语言

每年,CodeEval会根据收集到的数千个数据点来发布 “最受欢迎的编程语言”排行榜。

这些数据是通过处理超过2000个员工的10万个代码测试与挑战样本得来的。

这给我们提供了一个很好的点子来预测即将到来的一年里的编程语言流行趋势。

希望这些数据可以帮助即将毕业的计算机科学专业的学生和程序员们未雨绸缪,提前做一些知识储备。

Python已经连续3年位居榜首,今年紧随其后的是Java, C++和Javascript。

最值得关注的变化是Objective-C的提交量增长了300%,C#增长了100%,Javascript增长了33%,

而PHP下降了55%,Perl下降了16%,Java下降了14%。

相较于CodeEval指数,TIBOE指数可以更加准确地评价编程语言市场,而前者在预测工业界的语言流行程度上做得更好。

关于CodeEval

CodeEval是一个聚集了超过24000个优秀开发者的专属社区。成员可以相互竞争,向他们的朋友发出挑战,建立个人简历来展示自己的编程技能。

每日归档

下个月

归档