关于抛小球和楼层

关键词:抛小球,抛鸡蛋,楼层

恩,是有关键词,为了让搜索引擎找到这个文章。

题目的原型是这样的:

有100层楼,给你两个玻璃球,在某一层楼R将球扔下,球会碎,而R-1楼就不会碎,设计一个方案,确保找到这个R,这个方案最少要尝试多少次。

这是个相当相当经典的公司面试笔试题目,目前网上流传各种版本。其他版本还包括300层楼,3个球等等。总之实际上这个问题对于要找工作的同学来说,是有好好琢磨一下的必要的。

首先,我们先考虑一个更为一般,但更为直接的问题:如果给你n个球,允许你尝试不超过k次,那么最多你能检查多少层楼?(看出这个问题和上面那个问题的关系了吧)

在解决[……]

继续阅读

发表在 闲来无事 | 关于抛小球和楼层已关闭评论

VC++中__int64类型的屏幕输出

这个题目的意义其实仅仅在于,怎么输出在VC++里面的__int64这个类型的数字。

多数情况下,不会用到这么长的整数,不过,用到了,printf总得有个办法输出吧。

方法是使用%I64d这个占位符。

unsigned __int64 x;
printf("%I64dn",x);

以后得记着这种简单的问题,尤其是在不愿意花时间翻MSDN的时候。[……]

继续阅读

发表在 软件使用与程序设计 | VC++中__int64类型的屏幕输出已关闭评论

在Ubuntu 10.04 Server上使用Dr.com

这是到了新工作单位后的第一个细节性技术问题。本文内容可以看成是大规模的转载其他网文的结果。需要注意的是相应的软件和代码的版本问题。本文处理的是以下软件的特定版本的问题,其他版本请自行根据具体情况及相应文档进行处理。

Ubuntu Server 10.04.1 AMD64版本 + Dr.com For Linux 1.4.8.2 命令行版本

这两个东西是能够在一起工作的,虽然不是很完美,但至少是能够把网连上。具体的问题有这样几个:(1)在没有联网的情况下,怎样编译相应的代码;(2)编译错误的处理;(3)配置文件的编写;(4)后台daemon程序的启动和使用。

首先是下载Dr.c[……]

继续阅读

发表在 软件使用与程序设计 | 在Ubuntu 10.04 Server上使用Dr.com已关闭评论

生物信息学科研项目中的文件管理

生物信息学的科研实际上就是在计算机上进行的科研。各种文件的管理其实是个很重要的事情。乱七八糟的文件不但会影响研究进度和效率,还有可能造成意想不到的错误和损失。在过去六年的科研过程中,我逐渐总结出了一套适用于自己的文件管理方式。这套玩意不一定适用每一个人,不过,我想,给别人看看无伤大雅吧。

对于一个一般的生物信息学项目,都要单独建立一个文件夹,里面的结构大约是这个样子的,当然不可能每个都一样啦。略微偷偷懒也是允许的诶,只要别把自己搞乱了就可以了

SMC
|------ src
|------ dat
|------ bin
|------ log
|------ bak[......]

继续阅读

发表在 生物信息学 | 生物信息学科研项目中的文件管理已关闭评论

读取和使用XML格式的UniProt数据库

UniProt数据库是国际公用蛋白质序列和注释数据库,可免费下载全文使用。数据库提供了Flat Text,XML和RDF三种格式供选择,我在目前的研究中,用了XML格式的数据库。要读取这个XML格式的数据库需要一点点技巧。

首先,我们有XSD文件用来定义XML的 Data Schema,这个文件可以直接下载得到uniprot.xsd。有了这个文件之后,可以直接采用MS Platform SDK中的xsd.exe来生成一个类,用以执行从XML反序列化时的类型化过程。

XSD.EXE /C uniprot.xsd

就可以得到uniprot.cs这个文件了。将这个文件包含到[……]

继续阅读

发表在 生物信息学 | 读取和使用XML格式的UniProt数据库已关闭评论