摘要: ASH前段时间贴出了一个问题: 对于有K个元素的数组 int a[K]={....};写一个高效算法将数组内容循环左移m位 比如: int a[6] ={1,2,3,4,5,6} ,循环左移3位得到结果{456123}, 要求: 1不允许另外申请数组空间,但可以申请少许变量 2不允许采用每次左移 这是一个有趣的问题,当时ASH给出了一个很简单的解法: 1、将整个数组倒排; 2、将前k-m个元素和剩下的m个元素分别倒排。 这个算法需要对每个数组元素做两次写操作,所以我当时在考虑,有没有一种方法,只对数组元素进行一次写操作就完成移动? 最直观的想法,就是从第一个元素开始,把它一步移动到最终的目的位 阅读全文
posted @ 2006-04-25 17:16 计算机技术 阅读(1171) 评论(0) 推荐(1)
摘要: 代码的编译是计算机科学的一大命题,其博大精深,难以尽数。这里,我们捡着一个小命题娱乐一下。程序代码中,总是少不了数学运算,其实对于我们来说很熟悉的数学计算,在计算机里也是要做一些编译处理的。例如,4+9*3+7-2这样一个简单的四则运算,对于人来说就是: 4+9*3+7-2=4+27+7-2=31+7-2=38-2=36这里面,我们实际上已经在下意识里做了很多思考。首先,大脑会按照运算符划分开各个子算式,然后找出运算优先级的子式,按顺序计算完后,将结果填充给下一级,依次递归,直至整个算式完成。 计算机的编译/解释过程,其实跟这个很像,也是先找出最高优先级的子式,然后依次递归构造出一个语法解析树 阅读全文
posted @ 2006-04-03 22:35 计算机技术 阅读(251) 评论(0) 推荐(0)
摘要: Forms and the Top-Level LoopThe things which you type to the LISP interpreter are called forms; theLISP interpreter repeatedly reads a form, evaluates it, and prints theresult. This procedure is called the read-eval-print loop. 我们输入到LISP解释器的东西被称为语句;LISP解释器逐条循环读取每条语句,进行解析,将结果打印出来。这个过程被称为读取-解析-打印循环。So 阅读全文
posted @ 2006-04-02 21:43 计算机技术 阅读(231) 评论(0) 推荐(0)
摘要: Common LISP Hints Geoffrey J. Gordon <ggordon@cs.cmu.edu> Friday, February 5, 1993 Modified by Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de> 简体中文版翻译: 刘鑫 <March.Liu@gmail.com>Note: This tutorial introduction to Common Lisp was written for theCMU environment, so some of the 阅读全文
posted @ 2006-03-31 00:08 计算机技术 阅读(343) 评论(0) 推荐(0)
摘要: __call__Python中有一个有趣的语法,只要定义类型的时候,实现__call__函数,这个类型就成为可调用的。换句话说,我们可以把这个类型的对象当作函数来使用,相当于重载了括号运算符。例如,现在我们要计算重力环境下的自然落体位移。我们知道Sy=(gt**2)/2,那么,我们可以建立一个函数:def g_dpm(t):return (9.8*t**2)/2我们都知道,地球表面的重力加速度约等于9.8m/s**2,这个函数实在没什么技术含量。慢,头儿说了,我要算的是火星啊¥%#!呃……你能说人家无理取闹么?EA的FIFA足球里,我还见过微重力模式的球场,总之,在计算机程序里,很多超现实的需 阅读全文
posted @ 2006-02-24 16:33 计算机技术 阅读(370) 评论(0) 推荐(0)
摘要: 头疼,睡不着,看看手机,才3点多点,没办法,点个壁灯读书。读到快5点,开始觉得困了,躺下正要合眼,就听外面开始奏乐……幻觉……一定是幻觉……大早上奏乐,不扰民么?出殡啊……幻听现象越来越严重了,能分辨出近20年的若干流行歌曲,基本上和街头卖艺的真假盲人艺术家一个水平,能听出有鼓、锣、唢呐……唢呐?真出殡啊……坐起来翻书,无效……出去阳台上,什么也看不到。继续翻书……盲人艺术家们又转回来了……保持5分钟闹一次,一次5分钟……天已大亮,阳台上再转一圈,看到若干人穿着丧服走出小区……orz……真的出殡啊……靠……我这个人一般不祸害死人的,世上走一遭都不容易么。但是,今天让我睡不好的,死人也要咒他不得 阅读全文
posted @ 2006-02-08 08:54 计算机技术 阅读(185) 评论(0) 推荐(0)
摘要: 好吧,我承认我是个菜鸟,所以今天我勇敢的站出来接受大家的鄙视……话说早上同事喊我帮他改段程序,很简单,就是用PyRun_SimpleString函数执行一段Python脚本。错误也很直接,执行的时候出现写地址错误,如果你经常用VC/Delphi写一些用指针转来转去的程序,就应该经常见到这样的错误。所以,当时我很镇定。嗯,我镇定自若的指着屏幕(你看,那个时候这只手还很干燥)。呐,是不是文件访问权限设得太高了?同事答曰,我已经试过所有的组合了。一边说一边给我看MSDN上的fopen函数说明。那么……嗯,今天天气真好啊……(严肃点,我这儿思考问题呢)……那么,我们试试看……在一番瞎折腾过后,我的直觉 阅读全文
posted @ 2005-12-06 04:10 计算机技术 阅读(1284) 评论(0) 推荐(0)
摘要: MultiBoolean 是一个多值逻辑类,它兼容多种空值运算。最早在C#1.1上实现,包含在C#代码库March Library,并广泛应用于我以前开发的C#系统中,现在我编写了一个C++版,并为它封装了一个Python包。关于多值逻辑算法的讨论,见我在CSDN上发表的文章《March Library中的Multiboolean——多值逻辑实现》。这里,我主要希望可以通过这份源代码演示一个实用的boost::python应用。以下为源代码文件的内容:MultiBoolean.h////////////////////////////////////////////////////////// 阅读全文
posted @ 2005-11-30 01:59 计算机技术 阅读(185) 评论(0) 推荐(0)
摘要: 好吧,我承认我在BT,不过我确实是上周才知道从MSN可以进Space,昨天才知道用户名前面的*表示有最新更新……不知道昨天晚上refolding教我看那个星星的时候是什么表情,如果换了我是她,大概要抓狂的,呵呵。你看我这个人有时候粗心大意到不可思议。这一看不得了,原来有这么多朋友都开了Space,终于在封闭开发的时候,我也可以知道过得他们好不好。有人在相思,有人要忘却,有人记不得心爱的车车开到了哪里。我的朋友们,祝你们过得好。 阅读全文
posted @ 2005-11-29 23:35 计算机技术 阅读(166) 评论(0) 推荐(0)
摘要: 今天一个朋友跟我讲了一件事。他有个客户,公司的服务器每到下午5:00以后就无法访问。但是反复检查没有发现问题。无奈,他决定到现场蹲守。五点到了,一切正常,这时前台MM对他讲,小龚啊,我们要下班了,服务器你要记得关啊。 阅读全文
posted @ 2005-11-29 23:03 计算机技术 阅读(107) 评论(0) 推荐(0)