再贴一道老掉牙的智力测验题
题目目:
5个药瓶药粒数一样,其中一瓶药坏了,每粒药轻了1克,
原来是每粒药10克,怎样一次用天枰称出来是哪一瓶坏了
答案:
从第一瓶,第二瓶…第五瓶分别取1,2,3,4,5放在天枰一边,
另一边则放1+2+3+4+5=15颗放在另一边,一次便可得到
答案。详细就不用多讲了吧。
多谢
张久安
If you enjoyed this post, make sure you subscribe to my RSS feed!
题目目:
5个药瓶药粒数一样,其中一瓶药坏了,每粒药轻了1克,
原来是每粒药10克,怎样一次用天枰称出来是哪一瓶坏了
答案:
从第一瓶,第二瓶…第五瓶分别取1,2,3,4,5放在天枰一边,
另一边则放1+2+3+4+5=15颗放在另一边,一次便可得到
答案。详细就不用多讲了吧。
多谢
张久安
If you enjoyed this post, make sure you subscribe to my RSS feed!
大家知道,当我们登录QQ后,可以直接在QQ上启动QQ游戏,这时候QQ游戏会启动,并以当前QQ用户进行登录,而不需要输入QQ号及密码。
我这个人应该算是比较善于思考的了(-^_^-),我想QQ肯定是通过某种方式把QQ号及密码信息传递给QQ游戏了。
我们来看一下QQ游戏的命令行(有的任务管理器可以直接看到):
打开命令提示符窗口
输入wmic 回车 (如果是第一次使用wmic,会提示正在安装,稍等几秒钟就行了)
然后输入process 回车
此时会显示所有的进程,找到QQ游戏(QQGame.exe),会发现其命令行有这样一段:
/START QQUIN:xxx PWDHASH:xxx
(也可以直接在命令行下输入wmic process where “Name=’QQGame.exe’” Get CommandLine)
此时其实已经可以算是破解成功了,因为你已经可以在命令行下输入以下内容进行登录了:
QQ.exe全路径 /START QQUIN:xxx PWDHASH:xxx
由于QQ2009之后已经不支持命令行登录了,所以需要使用QQ2008或更早版本(注意:这里只要求破解者使用QQ2008 ,被破解者则无要求,所以对破解而言是没有任何障碍的,你完全可以趁某人离开位置而没有关QQ时,用其QQ打开QQ游戏(当然,如果已经打开了,就不需要了),然后用上面的方法获得命令行,保存起来(例如保存到邮箱),然后回家慢慢破,呵呵(-@_@-)
现在我来解释一下:
QQUIN后面的相信你已经看出来了,其实就是QQ号,而PWDHASH是什么呢,它其实是密码通过MD5加密后,再经Base64转换而得的,C#代码如下:
string GetPWDHASH(string password)
{
byte[] passwordBytes = Encoding.ASCII.GetBytes(password);
byte[] md5Bytes = new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(passwordBytes);
string base64 = Convert.ToBase64String(md5Bytes);
return base64;
}
知道了加密原理,解密就不难了,但是由于MD5算法是哈希算法,不可逆的,所以我们只能获得其MD5值,没有十分有效的方法获得原始密码,获得MD5值的C#代码如下:
string GetMD5FromPWDHASH(string PWDHASH)
{
byte[] md5Bytes = Convert.FromBase64String(PWDHASH);
string md5 = BitConverter.ToString(md5Bytes).Replace(“-”, “”);
return md5;
}
前面说到,MD5是不可逆的,但是也不是说完全不可破解,如果密码比较简单,可以采用暴力破解,不过我推荐使用在线MD5查询网站来破,比如http://www.cmd5.com。
当然,其实大可不必知道其真正的密码,因为你只需要知道其PWDHASH,你就已经可以使用该QQ进行登录了。
另外,现在有的网吧安全性比较差,可以直接使用WMI进行远程操作(WMI不在本文的讨论范畴,我只给一条命令,不作解释:/node:ip /user:administrator /password: “” process),这样就更爽了,只需要在网吧转一圈,观察哪些人在玩QQ游戏,然后就可以下手了,呵呵。
If you enjoyed this post, make sure [...]
NLP Toolbox
CLT http://complingone.georgetown.edu/~linguist/compling.html
GATE http://gate.ac.uk/
Natural Language Toolkit(NLTK)
http://nltk.org
MALLET http://mallet.cs.umass.edu/index.php/Main_Page
OpenNLP http://opennlp.sourceforge.net/
English Stemmer
Snowball http://snowball.tartarus.org/
English POS Tagger
Stanford POS Tagger http://nlp.stanford.edu/software/tagger.shtml
TreeTagger http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger/
TnT http://www.coli.uni-saarland.de/~thorsten/tnt/
English&Chinese Parser
Stanford Parser http://nlp.stanford.edu/software/lex-parser.shtml
Berkeley Parser http://nlp.cs.berkeley.edu/Main.html#Parsing
English Keyphrase Extractor
KEA http://www.nzdl.org/Kea/index_old.html
English Name Entity Recognizer
Stanford NER http://nlp.stanford.edu/software/CRF-NER.shtml
Chinese Word Segmentator 中科院ICTCLAS http://www.nlp.org.cn/project/project.php?proj_id=6
Stanford Word Segmenter http://nlp.stanford.edu/software/segmenter.shtml
Topic Modeling Tools
Matlab [...]
简介
MinGW是Minimalistic GNU for Windows 的缩写。她是一个建立在GCC和binutils 项目上的编译器系统。和其他GCC的移植版相比,她可以说是最接近Win32的一个了。因为,MinGW几乎支持所有的Win32API,这也是MinGW的特色之一。她所连接的程序,不需要任何第三方库就可以运行了。在某种程度上看,MinGW更像是VC的替代品。
获得与安装
MinGW可以从MinGW的官方网站 http://www.mingw.org 上获得。
如果,你要安装MinGW,那么你有两种安装方案。下面我来一一介绍。
安装方案一:
首先,你要从 http://www.mingw.org/download.shtml 上下载如下几个压缩包。考虑到文件的更新和文章的灵活性。我将只写出文件的主要部分,将省去版本好和更新日期。
gcc-core C语言编译器
gcc-c++ C++语言编译器
mingw-runtime MinGW的运行时库(这个必须安装)
win32api
win32的API函数头文件和连接库
binutils
MinGW的汇编器和连接器等基础工具
gdb
MinGW中的调试工具
mingw32-make Make工具,用以更好的管理你的项目
然后,将上述文件逐一下载,然后全部解压缩到一个目录下就可以了,我这里假设你是移动到$(MINGW)这个目录下了。这样,你的MinGW就算安装成功了。
最后到DOS终端上,将当前目录转换成 $(MINGW)/bin 下。输入
C:\>gcc -v
看到一段gcc的版本信息,这就能说明,你的gcc已经可以正常工作了。
安装方案二:
你可以从 http://www.mingw.org/download.shtml 上下载 MinGW5.0.2.exe 这个程序。至少,在我写此文的时候,这个是最新版本。
下载以后运行安装,至于安装过程,我想我就不一一介绍了。对于Windows下的开发人员,我想这个应该不是什么问题了。
在一切都选择好以后。这个程序就开始从Internet上下载所需要的压缩包。然后,逐一解开,安装。
总体来说,两种方法各有长处。不过,本人偏爱第一中方法。因为,控制度高,而且,更新也比较简单。自己心里也比较明了。
环境设置:
对于我们这些使用者来说,最好是能够简单方便的使用工具。所以,我们就需要设置环境,便于我们使用MinGW。
对于设置,我们只需要在环境变量中的PATH 变量中,添加$(MINGW)/bin这个路径就可以了。
这样,你就可以在任何目录下使用MinGW了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wiowei/archive/2009/01/06/3719337.aspx
If you enjoyed this post, make sure you subscribe to my RSS feed!
统计从1至400亿之间的自然数中含有多少个1?比如1-11中,有1,10,11这三个自然数有4个1。
拿到这道题目,您会如何去计算呢?如果是计算机方面的面试,你又该如何去思考呢?也有同事拿这道题目谈到了“数学”与“数感”的理解,不过笔者却想谈一些更实际一些东西。
如果是计算机方面的出现这道题目,我们可能首先想到的是挨个去找。比如1含有一个1,然后2不含有1,…10含有1个1, 11含有2个1,….直到4亿。实际去想想,可能还有第二种方法,即对于每一个数字,转换成一个字符串,然后查里面的1,这或许处理的时候简单一些,但思路基本一致。
方法二:对于每一个数字,首先转换成字符串,然后查询里面的1的个数,然后求合。这实际上没有实质的进步,无论计算复杂度还是难度,都没有质的简化。实际上如果仔细观察的话,我们会发现给出的一个有效数字是4亿,也意味着除了最高位是4位,其它全是0,那么由此可以知道它的位数是9位以内的,如果是9位,最高位只可能是1、2、3。有了这些信息我们就可以进一步分析了。
如果数字为9位,那么最高位只可能是1, 2, 3。如果最高位是1,那么剩余的8位可能含有1-8个1。因此进行分类分析。
剩余8位含有1个1的情况:2 * C(8, 1) * P(7, 7)。
剩余8位含有2个1的情况:3 * C(8, 2) * P(6, 6)。
….
然后将上面的值进行求合。
最高位是2, 3则可以进行类似计算,实际注意一下规范,可以利用上面的结果的。
我们再考虑一下其它情况,即含有1 - 8位的情况。我们假设含有N位,以此来进行说明。
最高位可能是1, 也可能是2-9,位不可能是0。因此可以利用上面类似的算法。
S(N) = 2 * C(N-1, 1) + 3 * C(N-1, 2) …. + (N-1) * C(N-1, N-1) + 8*(1 * C(N-1, 1) + [...]
,