Skip to main content

Posts

Showing posts from March, 2007

winlib .dll查杀

最近天网老报winlogon.exe要访问网络,这显然是中招了。 在c:\windows\system32\下按时间排序发现了winlib .dll, winlib0.dll等可疑文件,用icesword+unlocker可以删除,不过重启后“死灰复燃” 用autoruns发现了c:\windows\system32\drivers下有cdnprot.sys和acpidisk.sys(也可能叫acpidisks.sys,记不清了),很可疑啊,用U盘启动把它们删掉 最后一处是临时文件夹下有个~my1.tmp(也可能是~my6.tmp),delete it! 总算是斩草除根了,至少看上去是这样。

与 Flash 通信的问题

我一直希望能用Flash做我程序的界面,主程序当然还是用VC写,这就需要网络通信. 查了半天help,发现了XMLSocket可以用,然后开个nc当server,用Flash连,发现可以连接,Flash也可以给nc发消息,但是nc发过来的就不行了。 帮助里关于onData隐约地说明了Flash接受到的消息一定要以一个\0结尾,我一开始就是这么想的,nc似乎发不了\0,于是我就弄了个简单的VC程序,不过一开始总不行,因为我用的是std::string("some words\0"),似乎std::string会自动切掉尾部\0,于是改为std::string("haha\0",5), 啊,终于看到Flash有反应了。不错。 还有,Flash导出swf后,connect好像只会连接80端口,再转为exe就正常了,这有点好像调用外部exe的情况,估计也是为了安全吧。不过我用别的播放器,比如KMPlayer或Sothink SWF Decompiler就没这问题。 另外,据说Flash9的AS3已经没有这个问题了,我没试过,不知道是不是真的。

数学趣题:看电影

问题:有N个人去看电影,其中有一个是疯子。每个人各有一张票,电影院恰有N个座位。N个人依次入场,疯子最先冲了进去。 疯子首先在N座位中随机(等可能)挑一个坐下,以后每个人进去后,如果自己的座位没有被占,则就对号入座,否则在现有的空座位上随机(等可能)挑一个坐下。 问最后一个人对号入座的概率 解法1 设所求为P(n),现将N个人按入场顺序编号为1-N,则1号为疯子。再把他们各自对应(按手中的票计)的座位也相应标为1-N。现考查1号 如果1坐到自己的座位上,这有1/N可能,则以后每人都回对号入座 如果1坐到N号最为上,则N不可能对号入座 如果1坐到i(1<i<N)号座位,这也是1/N的可能,则以后2至i-1号都会对号入座,此时把1号座位对应于i,这时就转化为了N-i+1个人的看电影问题,因此最后一个人对号入座的概率为P(N-i+1) 综上可知P(N)=(1 + sum(i from 2 to N-1) P(N-i+1) ) /N 可算得P(N)=P(N-1)=...=P(2),而对于两个人的情况显然所求为1/2,所以这就是最终结果 解法2 编号同上,对每一种N个人都坐下后的结果,我们把1-N号座位上的人的序号依次排开成一个数组,则如果都对号入座,应该是(1,2,...N) 容易看出N不是在最后一个就是在第一个,否则,设N在第i(1< i<N)个,则由于i比N先入场,i进场时他的座位一定是空的,这就矛盾了。 把所有的数组按照N的位置分为两组,并构造一个双射 对一个N对号入座(即N在最后一个)的数组,我们考察第一个数,设为i,那么我们说i+1至N这些人都对号入座了。如果这样不好理解,我们换种说法,即找 到“按进场顺序,最后一个坐错的人”,或不在自己座位上的序号最大的人,如果所有人都对号入座了,则把1号挑出来。这样,类似上面的分析,可知这个人一定 是坐在了1号座位上。 现在我们把这个数组中首尾对调一下,即最后一个坐错的人和N。得到了一个N没有对号入座的数组。把这个数组与原来的对应起来,易知这是一个双射,而且出现 它们的概率相同。因为1至i-1(i为与N交换的那个数)的座位在两边都一样,则出现概率也一样,i-2至N-1应该都是对号入座,是确定的。不同之处在 于i是坐了1号还是N号,根据题意,这时等概率的。 这样就知道了N对...

数学趣题:区分好人与坏人

问题:现有n个人,多于一半是好人,其余为坏人。你并不不知道他们具体谁是好人谁是坏人,然而他们彼此很清楚。 现在你每次可以挑两个人互相指认对方是好人还是坏人,好人总说实话,而坏人则会胡说(不一定是假话)。 请找到一个算法区分所有好人与坏人,并给出所需次数(大致数量级即可) 解答:(以下为大致阐述,对于细节,如是否严格大于或大于等于之类请自行讨论) 对于n较小的情况,如2,3,可以指定一个人T,让他与其余所有人互相指认,因为好人多于坏人,所以看结果是说T是好人的多还是坏人的多,那个多T就是哪个,如果一样多,T是好人。此时虽然是n平方数量级,但也可看作线性。 对n较大的情况,我们希望尽快找到一个好人以便指认出其余人的情况 把n个人两两分组(如有多余暂不考虑,放到下一轮处理),让他们互相指认。结果有如下几种情况: a.至少一个人说对方是坏人 b.都说对方是好人 对于a, 组里至少一个人是坏人,我们把所有这样的组全部“淘汰” 对于b, 组里两个人必同为好人或同为坏人,我们在这样的组中每组任选一个淘汰。 这样一轮下来,可以知道淘汰掉的坏人不少于淘汰掉的好人,仔细分析还可知道剩下的人当中一定还是好人比坏人严格多。 这样下去直至剩下小于4人的情况,就可以用最开始的方法找到一个好人。 此时所花的次数约为N/2 + N/4 + ..., 大约等于N,然后再用至多N-1次指认就可以分辨所有好人与坏人了。 所以最后的数量级为2N

D-player

以前在一些论坛上看到了这个头像gif: 觉得很可爱,但是不知道是怎么做的,因为看上去像真人“抓”出来的(或者是一个很厉害很厉害的人画出来的,但那也肯定是3d动画),但是只为这么个gif肯定不值得。 后来查到了有个软件D-player,是韩国人做的街舞软件,也知道了这个gif是用它截出来的。我一开始下了1.83和2.0,后来觉得不过瘾,又去emule下了一个“目前最完整的版本”,四百多兆呢,下了好几个小时。但是运行之后发现还是挺值得的。我发现自己越来越喜欢它了,而且也越来越喜欢街舞了。看着这个软件中的跳舞娃娃,自己的身体都会不由自主地动起来。 挺佩服作者的创意和想象力。 现在的一个小遗憾是不知道上面的gif是哪种舞步,虽然我现在这个版本舞步很多,但是我试了很多个都不是这个。唉,再查查吧。

金山词霸重装错误

参见 http://hi.baidu.com/zhenyanzi/blog/item/bf8be4cd5871a1510eb3450d.html 应该是金山词霸2006卸载时卸不干净的缘故吧,重装显示"无法打开键UNKNOWN\XFavHist.XHistory.1\CLSID.请验证您对该键拥有足够的访问权限,或者与您的技术支持人员联系。" 解决方法,在注册表中搜索所有含XFavHist.XHistory的项或值,全部删除,重装即可

[转] UTF-8 and Unicode FAQ for Unix/Linux

这几天,这个东西把我搞得很头疼 而且这篇文章好像太大了,blogger自己的发布系统不能发 只好用mail了 //原文 http://www.cl.cam.ac.uk/~mgk25/unicode.html UTF-8 and Unicode FAQ for Unix/Linux by Markus Kuhn This text is a very comprehensive one-stop information resource on how you can use Unicode/UTF-8 on POSIX systems (Linux, Unix). You will find here both introductory information for every user, as well as detailed references for the experienced developer. Unicode has started to replace ASCII, ISO 8859 and EUC at all levels. It enables users to handle not only practically any script and language used on this planet, it also supports a comprehensive set of mathematical and technical symbols to simplify scientific information exchange. With the UTF-8 encoding, Unicode can be used in a convenient and backwards compatible way in environments that were designed entirely around ASCII, like Unix. UTF-8 is the way in which Unicode is used under Unix, Linux, and similar systems. It is now time to make sure that you are well familiar ...