关于作者

用户名:matchchen
笔名:matchchen
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



链接

朋友的主页

访问统计:
文章个数:213
评论个数:80
留言条数:6




Powered by BlogDriver 2.1

matchchen

 

文章

花飞满天-梅花节留影

梅花山镇山之宝下周末盛放


(2008-02-24 07:45:40)

【金陵晚报报道】东郊梅花山梅花已开了约两成,而有三四成的梅花已经含苞。据南京梅花山首席花情预报员宫庆华介绍,梅花山的镇山之宝“别角晚水”目前已经含苞,预计到下周周末盛放。想一睹别角晚水风采的市民们,到时不妨趁着春光明媚前往梅花山游玩。

寻梅之识梅:“别角晚水”

“别角晚水”是梅花山最为珍贵的品种,淡淡的玫瑰红色,层层叠叠的花瓣多达45瓣,状如浅碗。

上世纪90年代,陈俊愉先生到梅花山调查,发现了这株珍贵的梅花。此梅盛开时,花瓣边缘常有凹陷,因此被称之为蹩脚,取谐音“别角”。花间碎瓣飞舞,在风中流动,正应了那句“花落水流红”。它属于中晚期梅花,香味浓郁,属于真梅系直枝梅类宫粉型的优良品种,极为珍贵。

年前虽然遭逢雨雪,但近期气温回升很快,预计到下周末,别角晚水就会盛放。届时,市民可一睹梅花山镇山之宝的风采了。

以上是《金陵晚报》对梅花节的报道。

3月1日赴梅花山赏梅,拍摄若干照片(三星蓝调L730 卡片机),挑选组合成集:

01 梅花报春

http://matchchen.bokee.com/inc/01+%C3%B7%BB%A8%B1%A8%B4%BA.JPG

02 小小的我

03 寻梅

04 赏梅

 

05 窗前风景

06 扇面盆景

07 洁白如雪

08 姹紫嫣红

09 傲视蓝天

10 怒放的生命

11 “华夏第一梅”-别角晚水

12 垂枝梅

13 朱砂梅

14 绿萼梅

15 梅园小憩

16 乱花渐欲迷人眼

17 今昔石象路

18 国际梅花节歌舞表演

19 献歌

20 花美人更美

网上专业相机拍摄的梅花节:

http://www.xici.net/b600623/d65982195.htm

- 作者: matchchen 2008年03月2日, 星期日 23:39  回复(0) |  引用(0) 加入博采

已锁定
此日志的浏览权限已被作者锁定,请同作者联系,发送短消息,如果你的身份符合作者的要求,点击此处可以进行浏览

- 作者: matchchen 2006年04月1日, 星期六 16:44  回复(0) |  引用(1) 加入博采

DLL注入的步骤(简略)

DLL注入的步骤-《决战恶意代码》笔记

1。在受害进程中为DLL代码分配要占据的空间。
用到的函数:VirtualAllocEx

2。在受害进程中为要注入的DLL所需的参数分配空间。
用到的函数:VirtualAllocEx

3。把DLL的名字和代码写入受害进程的存储空间。
用到的函数:WriteProcessMemory

4。在受害进程中创建线程,运行新注入的DLL。
用到的函数:CreateRemoteThread

5。释放受害进程中的资源。
用到的函数:VirtualFreeEx

API挂钩:攻击方把合法Dll提供的API中的特定函数挂接到攻击者提供的恶意代码上。

- 作者: matchchen 2006年03月22日, 星期三 00:01  回复(0) |  引用(1) 加入博采

术语定义与解释之三(恶意代码相关)

病毒:具有自我复制和自我传播两个基本特征的特殊代码;传统病毒的特点是依附于宿主程序(被感染程序);通常分为文件型病毒和引导型病毒。

木马:广义上说所有的网络服务程序都是木马;一般所指的木马程序通常在用户不知情的情况下安装,隐藏于后台,用户无法终止其运行。

《决战恶意代码》

1 病毒:能自我复制,感染宿主文件的特殊代码。

2 蠕虫:能自我复制,通过网络自动传播的特殊代码。

3 移动代码:通过远程下载,在本地自动执行的小型程序。有Java applet、Java Scripts、VB Scripts、ActiveX控件等形式。

4 木马: 伪装成有用程序的恶意代码。

5 RootKit:一种木马,它获取运行在计算机上与操作系统相关的常规程序,用恶意版本替换它们。包括DLL注入、API挂钩。

6 用户级RootKit:替换或修改系统管理员和用户使用的可执行程序

7 内核级RootKit:控制OS的内核,用来隐藏和创建后门。

8 ActiveX控件:一类特殊的COM对象,可供其他用户下载并在网页中使用。

ActiveX控件是编译程序,一旦运行,就能实现一个正规程序在Windows中能实现的每一个功能。

- 作者: matchchen 2006年03月21日, 星期二 22:36  回复(0) |  引用(1) 加入博采

从电脑上免费拨打座机或手机(redvip)
摘要:推荐一款网络电话,我也注册还不久,用起来还不错,一拨就通,通话质量也很清晰,关键是可以免费拨打手机和座机,我用它打长途可以节省很多钱: 查看全文

- 作者: matchchen 2006年03月21日, 星期二 22:06  回复(1) |  引用(1) 加入博采

已锁定
此日志的浏览权限已被作者锁定,请同作者联系,发送短消息,如果你的身份符合作者的要求,点击此处可以进行浏览

- 作者: matchchen 2006年03月15日, 星期三 20:57  回复(0) |  引用(1) 加入博采

在Jbuilder9下配置Jboss和mysql-jdbc,开发EJB笔记

一。安装j2sdk1.4.1,Jbuilder9,mysql-4.0.14b-win,Jboss-3.0.8,JBossOpenTool-2.6alpha,以及JDBC for mysql(mysql-connector-java-3.0.16-ga)。
注意:
    1 由于安装Jbuilder9时用的是ISO镜像文件,可以用Deamon将其装入虚拟光驱后安装,然后用JB9_Ent_KeyGen.exe产生SN和KEY,第一次启动Jbuilder就要输入SN和KEY,但输入后仍然进入不了程序界面,重启机器后就可以了。 
    2 JBossOpenTool是用来整合JBuilder和Jboss 的工具。这里要注意下载2.6alpha版,我先下载了另一个版本,结果安装不上(表现为在Jbuilder9的Tools->Configure Servers...下选择JBoss 3.x后,右侧只有General属性页,而没有出现Custom属性页)。
    3 建立实体EJB需要关联数据源。按照参考资料3提供的方法测试数据库连接无误后,在EJB项目的下有一个JDBC 1 Datasouces,从右键菜单中选择New JDBC 1 Datasouces创建一个数据源。双击该数据源,在右侧general属性页中填写如下内容:
    URL: jdbc:mysql://localhost:3306/Sample(Sample是我建立的数据库的名称)
    UserName: 按数据库配置填
    Password:  按数据库配置填
    Isolation level: No Isolation level
    Driver class: com.mysql.jdbc.Driver(注意当时选择项里没有看到这一项,手动填写就可以了)
    填好以后单击“Test connection”,Log窗口显示连接成功。
    4 选中EJB项目,在右侧的EJB Designer视图中可以看到图形化的EJB,有点象UML的类图。选中它以后可以通过右键菜单给EJB添加属性、方法等。
    首先选择右键菜单中的Import schema from Database,在弹出的对话框中单击“choose exiting connection...”按钮,选择刚才连接成功的数据库;
    然后单击UML图上的EJB名称,从右侧出现的属性表中可以看到Table name下拉列表中已经有了刚才选择的数据库中所包含的表了。选中你需要使用的表名;
    在右键菜单中选择“add->field”,在属性表中可以看到column name下拉列表中已经有了刚才选择的表中的字段名了。
    5 选择EJB项目,从右键菜单中rebuild和deploy,然后就可以在Jboss服务器上运行了。
    6 按照参考资料1中的方法做好运行配置,保证当前没有Jboss实例运行,同时mysql服务可用,然后就可以直接运行了。运行时在下方服务器窗口中显示服务器运行信息,最后一条信息像下面这样:
“22:30:30,078 INFO  [Server] JBoss (MX MicroKernel) [3.0.8 (CVSTag=JBoss_3_0_8 Date=200306050849)] Started in 0m:9s:453ms”,说明运行成功,用IE进入http://localhost:8080/jmx-console/index.jsp页面,在Jboss.J2ee项目下可以看到EJB已经被加载,例如我编写的EJB类名为ReceivedItem,则显示信息中有一条“jndiName=ReceivedItem,service=EJB ”。
    7 网上参考资料中多提到tomcat的配置,这里tomcat已集成于Jboss-3.0.8中,因此不用对其作任何特殊配置,只需配置Jboss即可。
    8 参考资料2中说“打开http://localhost:8080/jmx-concose,如果有页面则表示JBOSS和TOMCAT配置成功”,其实应打开http://localhost:8080/jmx-console/index.jsp页面。

参考:
1 如何在jb中配置jboss开发ejb
http://kb.csdn.net/java/Articles/200508/39e851cb-0730-40c0-8272-a4bd4ca33775.html
JBoss开发环境配置

1 下载JBossOpenTool
2 将解压后的JBossOpenTool.jar放到JBuilder安装目录的lib\ext下
3 启动JBuilder(如果JBuilder在前面的步骤中已经,需要重新启动来JBossOpenTool起作用)
4 选择Tools->Configure Servers...
5 选择JBoss 3.x(根据手上的JBoss版本选择)
6 选中Enable Server
7 在General属性页中配置Home directory为JBoss的解压路径,Working directory会被自动设为JBoss的解压路径下的bin
8 在Custom属性页中配置JBoss installation directory为JBoss的解压路径(没错,和上面一样)
9 配置Tomcat 4.x JBuilder installation directory为JBuilder中tomcat 4.0.x的路径(虽说指示为4.x,但选择4.1版本会有问题)
10 其余配置缺省就好!

在工程中配置Server
1 新建工程
2 选择Project->Project Properties...
3 选择Server属性页
4 在Single server for all services in project的下拉列表中选择JBoss 3.x

简单EJB开发

创建EJB Module
1 选择File->New...
2 选择Enterprise属性页
3 双击EJB 2.0 Designer,这时EJB 2.0 Bean Designer的向导就会出现
4 点击EJB Module向导中的New按钮
5 在Name一项中添入EJB module的名字(cart_module),其它的取缺省即可
6 回到EJB Module向导中,接受缺省配置,EJB Designer就会出现

创建EJB
1 在EJB Designer中点击右键,选择Create EJB,再选择具体的EJB类型(Session Bean)
2 选择第一个格,可以改变Bean name(Cart)
3 可以改变Interface的类型(remote)
4 可以改变Session type(Stateful)
5 下面的同样可以根据需要进行改变
6 自动生成了三个

添加Field
1 右键点击EJB,选择Add->Field
2 可以改变变量的名字、类型以及是否添加get和set方法(如此添加_cardHolderName、_creditCardNumber、_expirationDate(java.util.Date)、_items(java.util.List))
添加业务方法
1 右键点击EJB,选择Add->Method
2 可以改变方法的名字、输入参数、返回类型

bean的部署描述符
1 选择EJB Designer
2 选择EJB DD Source
3 选择ejb-jar.xml

配置运行
1 选择run->configurations
2 选择new
3 type选择server
4 server选择JBoss 3.x
2 JBuilder+JBoss+tomcat的环境配置
http://www.watchina.org/html/program/Java/11783.html
3 关于jbuilder连接mysql的驱动配置问题
http://topic.csdn.net/t/20041025/17/3489601.html
摘要:
一、选择Tool   ->   Configure   Libraries,在Configure   Libraries窗口中选择左边列表框下的New,弹出New   Library   Wizard   窗口,在Name中输入mysql(可以自己定义),Location中选择User   Home,点击Add,选择mysql   jdbc的路径:c:\system\mysql-jdbc\   mysql-connector-java-3.0.9-stable-bin.jar,点击ok(两次);
二、选择Project   ->   Project   Properties   ->   Paths   ->   Required   Libraries   ->   点击Add,选择第一步骤中添加的User   Home下的mysql,点击ok(两次);
三、选择Tool   ->   Enterprise   Setup   ->   Database   Drivers   ->   点击Add,选择刚添加的User   Home下的mysql,点击ok,在列表框中出现mysql.config,点击ok;
四、提示重新启动JBuilder,设置才能生效,确定后,重启JBuilder;
五、选择Tool   ->   Database   Pilot   ,在Database   Pilot窗口中选择View   ->   Options   ->   Drivers   ->   点击Add
Driver   class中输入:com.mysql.jdbc.Driver  
Sample   URL中输入:mysql://localhost:3306/DataBaseName   点击ok;
六、在Database   Pilot窗口中选择File   ->   New,在New   URL   窗口中,
Driver:从列表中选择第五步骤建立的com.mysql.jdbc.Driver
URL:将DataBaseName改为存在的数据库,本例中的URL如下:jdbc:mysql://localhost:3306/test,点击ok;
七、在Database   Pilot窗口中Database   URLs列表中双击刚建立的url,输入连接数据库的用户名、密码,连接成功。
4 在JBuilder中连接JDBC方法
http://kb.csdn.net/java/Articles/200506/b164358d-9304-4063-9abe-d0268418db12.html 

- 作者: matchchen 2006年02月22日, 星期三 21:02  回复(0) |  引用(1) 加入博采

《红楼梦》人物关系图

- 作者: matchchen 2006年02月21日, 星期二 22:01  回复(39) |  引用(1) 加入博采

已锁定
摘要:项目开发过程,Rose的一些使用方法,JBuilder 的基本使用方法 查看全文

- 作者: matchchen 2006年01月7日, 星期六 17:22  回复(1) |  引用(1) 加入博采

已锁定
此日志的浏览权限已被作者锁定,请同作者联系,发送短消息,如果你的身份符合作者的要求,点击此处可以进行浏览

- 作者: matchchen 2005年12月25日, 星期日 11:50  回复(0) |  引用(1) 加入博采

南京至长沙 乘火车方案相关信息(2005.12)

南京站首页(http://www.njstation.com/):
包括问讯电话(85822222),订票电话,市内售票点地址,及南京火车站通知.

南京火车站预售期调整通知(http://www.njstation.com/spring2005.htm):
2005年,从元月1日起预售10天(含当日),2006年还没查到,经常在变化,最好打电话查询.

南京长沙的可选的中转方案(http://www.huochepiao.com/Search/chaxun/zzresult.asp?txtChuFa=南京&txtDaoDa=长沙&txtZZ=株洲):
来自火车票网,其中K221/K224次是扬州始发.

车次 k155 的详细信息
(http://www.huochepiao.com/Search/chaxun/resultc.asp?txtCheCi=k155):
数据来自火车票网,最近更新05/11/30.
南京西至昆明,空调快速 南京(10:41)-株洲(5:48),经马鞍山、芜湖、黄山、景德镇、鹰潭。
(http://www.huoche114.com/huochepiao/PiaoJia/01d182.Html):
票价:至株洲硬座131元。 (数据更新时间:2005/9/1)

车次 1311 的详细信息
(http://www.huochepiao.com/Search/chaxun/resultc.asp?txtCheCi=k155):
数据来自火车票网,最近更新05/11/30.
南京西至广州,空调普快, 南京(10:28)-株洲(9:52),经上海西、杭州东、金华西、上饶、鹰潭。
(http://www.icha.cn/huochepiao/PiaoJia/9ccb91.Html)
票价:至株洲硬座158元。 (数据更新时间:2005/9/1)

信息:火车票预售时间不再"打架" 10天购票期卷土重来(2005年10月21日)
今后南京任何卖火车票的售票点(包括车站窗口)对市民卖火车票的时间一律调整至10天预售,学生票为11天。之前火车站在市内的售票时间是18天,而车站的售票时间是4天。
在2003年4月18日全国铁路第五次大提速之际,原南京铁路分局将分局分配给各车站发往上海路局管辖内(如苏南、上海、浙江、福建)各车站的火车票提前到2-10天,同时,分配给各车站发往全国(上海铁路局以外)车站的火车票也提前到2-10天(按:2天的限度是因为南京市内除车站以外的其他售票点不能对旅客出售当天的火车票,但能够和车站同时出售10天内的火车票)。

- 作者: matchchen 2005年12月19日, 星期一 22:34  回复(0) |  引用(1) 加入博采

英语单词辨析:“here you go/there you go”

转自http://www.p2p365.com/2nd/read/wanhuatong/english_003.asp?id=1882

Hereyougo.
干的好。


"Hereyougo."和"Thereyougo."听起来只有一字之差,所以很多人都会乱用,这二者倒底有什么区别呢?仔细来分,"Hereyougo."指的是一件事情还在进行之中,而"Thereyougo."则是事情已经结束,例如店员正把你买的东西交付给你,他会说,"Hereyougo."而不是"Thereyougo."反之,如果东西己经到了你手上,则他会说的是,"Thereyougo."
此外,"Hereyougo."和"Thereyougo."一样,也有鼓励别人的意思在里面,像我本身蛮喜欢跟老美打棒球的,每次有人大棒一挥,老美就会兴奋地大叫"Hereyougo."问题是他们为什么不说,"Thereyougo."呢?因为球在飞行当中算是一个过程,你还不知道结果,所以要用,"Hereyougo."会比较正确,而事实上老美也正是这样子用的喔。当然这里各位不必太细究"Thereyougo."和"Hereyougo."的区别,小笨霖这里所说的只是一个大原则,至于在日常生活的交谈中,想到哪一个就说哪一个吧。反正老美都听得懂。

- 作者: matchchen 2005年12月19日, 星期一 22:00  回复(0) |  引用(1) 加入博采

术语定义与解释之二

《面向业务构件的可重构信息系统的模型研究》

《快速可重构信息系统及其关键技术研究》

1.    可重构性:指系统在原有软硬件资源的基础上,通过调整系统的结构、功能等而快速适应需求变化的能力。

2.    构件:独立的可重用的代码封装体。

3.    应用工程:是对领域工程产阶段产生的可重用产品进行集成和组装的过程。

4.    软件工程的两次飞跃:第一次是传统软件工程向面向对象软件工程的飞跃;第二次是OOSE向基于构件的软件工程的飞跃。

5.    业务对象:业务领域中某业务的抽象,包括静态实体及动态的事件和处理逻辑。

6.    业务构件:业务对象的软件实现;表达了自治的业务概念。包括过程业务构件、实体业务构件和实用业务构件。(《基于组件的企业级开发

7.    模式:对某一类问题的可复用的解决方案;“模式描述了环境中不断出现的问题及其解决方案,人们可以无数次地重复使用这些已有的解决方案,而无需重复相同的工作”

8.    MDA(模型驱动的体系结构)核心思想:MDA是OMG提出的新的软件开发方法学。其核心思想是:抽象出与实现技术无关,完整描述业务功能的核心模型PIM(平台独立的模型),针对不同实现技术制定多个影射规则,然后通过这些影射规则及辅助工具将PIM转换成与具体实现技术相关的应用模型PSM(特定平台的模型),最后将经过充实的PSM转换成代码。

9.    框架:有多种定义。i设计角度的OO框架:是一个系统部分或全部的可重用设计,包括一组抽象的类库及其实例之间的互操作机制。 ii 是应用系统的骨架。iii 是实现构件即插即用的插槽。

10.热点Hot spot):也称扩展点(extension point);应用领域中易变的方面。

11.凝固点frozen spot):框架中稳定不变的设计结构、类或方法。

12.好莱坞法则:“Don’t call us, we will call you.”用户定义的方法,通常被框架,而不是用户的应用代码调用。当你使用类库(或工具箱和传统的子程序库)时,你需要编写应用软件的主体并且调用你想复用的代码。而当你使用框架时,你应该复用应用的主体,而去编写主体所调用的代码。你不得不以特定的名字和调用约定来编写框架中所定义的抽象操作或你需要重定义的操作。

13.冗余设计:提供一定的备用功能和可扩展功能。

14.“脆弱的基类”问题:是使用类继承的主要缺点;无法在运行时刻改变从父类继承的实现;对基类的更改经常要求更改、重新编译和重新分发基类以及派生类中的所有代码。

15.抽象类与接口的异同

i 本质相同,都允许只定义接口而推迟定义实现部分(接口一般通过抽象类声明);

ii 差异表现在:抽象类允许添加一些方法的实现;而接口必须推迟实现定义的所有方法(抽象类包括了接口的内涵)。

16.OO的三大重用机制:继承(静态重用)、对象组合或委托(动态重用)、参数化类型(静态重用)。

17.委托:一种对象组合方法,它使组合具有与继承同样的重用能力;在许多设计模式(如StateStrategyVisitor)中都使用了委托机制。

18.代理(Agenti 一个自包容的自治问题求解实体;ii 具有和其它代理进行交互、对环境变化作出响应和基于目的采取行动的能力。

19.多代理(muti-agent)系统

i 由多个Agent形成的松散耦合的网络系统;

ii 它们在物理和逻辑上是分散的,行为是自治的;

iii 它们为了共同完成某个任务或达到某些目标,遵守某种协议连接起来,通过交互和合作解决超过单个Agent能力或知识范围的问题。

20.黑盒框架和白盒框架:白盒框架和黑盒框架的本质区别在于:黑盒框架企图涵盖其适用领域内的所有需求并提供相应的实现;而白盒框架只是涵盖其适用领域内的公共需求(即“凝固点”)并提供相应的实现,而对不同应用的特殊需求则提供相应的热点和热点子系统来供应用开发者来订制或扩展。白盒框架无法提供其适用领域内所有应用的候选实现。

21.钩方法和模板方法:钩方法(hook method)和模板方法(template method)分别描述了框架的两个不同方面(即可变方面和不可变方面)。钩方法一般提供了缺省的行为,子类可以在必要的时候进行重定义和扩展,常用于实现应用框架中的热点;模板方法是定义类的抽象行为、某操作的算法骨架、控制流或者类之间关系的一种方法,通常用于实现框架的凝固点,一般来说,模板方法是基于钩方法来实现的,其中钩方法作为原语操作(primitive operations)被模板方法所调用。

《解析MDA》


1. 方法学(methodology):一系列需要照着做的方法和规则的集合。它不同于“研究方法的科学”(哲学上的方法学)。

   如果软件开发是游戏,那么方法学就是攻略。高手可能不需要攻略,但是一般人要在攻略的指导下才能少走弯路。


2. 模型:是以精确定义的语言对系统(或系统的一部分)做出的描述。其中“精确定义的语言”指具有精确定义的形式(语法)和含义(语义)的语言,适合计算机自动解释


3. 元建模:过去,语言常常是通过用BNF(巴克斯-诺克范式)描述的文法来定义的。BNF文法满足了“适应自动解释”的要求,但把语言限制为纯文本。由于建模语言未必是基于文本的,它们可以有图形语法(例如UML),于是我们需要一种不同的机制来在MDA环境中定义语言,这种机制称为元建模。


4. OMG的4个建模层次M0层:实例(运行的系统);M1层:系统的模型(例如软件系统的UML模型);M2层:模型的模型(即元模型,metamodel;创建原模型就是定义一种语言);M3层:M2的模型(元-元层,在OMG中,MOF是标准M3语言,所有的建模语言都是MOF的实例)。

1 嵌入式系统:嵌入到对象体系中的专用计算机系统;特点:嵌入性、专用性、计算机系统。

2 嵌入式设备:内部有嵌入式系统的产品设备。例如内含单片机的家电、仪器仪表、手机等。

3 面向对象和基于对象:面向对象必须满足三个条件:封装、继承和多态;只满足第一个条件或第一、二个条件的称为基于对象。

模型:用某种工具对同类或其它工具的表达方式;抓住事物最重要的方面而简化或忽略其他方面;建立模型的目的是因为在某些用途中模型使用起来比操纵实物更加容易和方便。例如建筑模型可以是建筑图纸、用厚纸板做的三维模型或存于计算机中的有限元方程。(《UML参考手册》)


最佳实践:开发中应该遵循的解决问题的经验例如RUP(Rational统一过程)有六个最佳实践:i 迭代化开发;ii 管理需求;iii 基于构件的软件架构;iv 可视化建模;v 持续的质量保证;vi 配置管理。

工件:由软件开发过程所生成或使用的文档、模型、说明或软件等;同义词:产品(product)。

构件:一个独立发布的功能部分;可以通过它的接口访问它的服务。

Ad Hoc:源自拉丁语,意为专用的、特定的

9 Web 2.0: 个性化的网络应用

- 作者: matchchen 2005年11月20日, 星期日 20:06  回复(0) |  引用(1) 加入博采

已锁定
此日志的浏览权限已被作者锁定,请同作者联系,发送短消息,如果你的身份符合作者的要求,点击此处可以进行浏览

- 作者: matchchen 2005年11月19日, 星期六 19:55  回复(0) |  引用(1) 加入博采

英语单词辨析:“公司/单位”

公司/单位: corporation, company, firm, unit

CORPORATION is usually with the whole name of this
company, and is usually used in a formal document.

COMPANY is a general word. You'll see or hear this
word very often. "My company only had 50 employees two
years ago, but now---", "How is the insurance of your
company?"

FIRM, it's rarely heard as a company.

UNIT, not used as company.  Unit means one
apartment in the building. Also, you may say "The unit
of distance is meter."  So, unit just means "单位".

- 作者: matchchen 2005年11月19日, 星期六 18:35  回复(0) |  引用(1) 加入博采

(z)通用SQL数据库查询语句精华使用简介

一、 简单查询

  简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。

  例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。

  SELECT nickname,email
  FROM testtable
  WHERE name='张三' 

  (一) 选择列表

  选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。

  1、选择所有列

  例如,下面语句显示testtable表中所有列的数据:

  SELECT *
  FROM testtable 

  2、选择部分列并指定它们的显示次序

  查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。

  例如:

  SELECT nickname,email
  FROM testtable 

  3、更改列标题

  在选择列表中,可重新指定列标题。定义格式为:

  列标题=列名
  列名 列标题

  如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:

  SELECT 昵称=nickname,电子邮件=email
  FROM testtable 

  4、删除重复行

  SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。

  5、限制返回的行数

  使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。

  例如:

  SELECT TOP 2 *FROM testtable SELECT TOP 20 PERCENT * FROM testtable

  (二)FROM子句

  FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。

  在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:

  SELECT username,citytable.cityid
  FROM usertable,citytable
  WHERE usertable.cityid=citytable.cityid 

  在FROM子句中可用以下两种格式为表或视图指定别名:

  表名 as 别名
  表名 别名

  (二) FROM子句

  FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。

  在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:

  SELECT username,citytable.cityid
  FROM usertable,citytable
  WHERE usertable.cityid=citytable.cityid 

  在FROM子句中可用以下两种格式为表或视图指定别名:

  表名 as 别名
  表名 别名

  例如上面语句可用表的别名格式表示为:

  SELECT username,b.cityid
  FROM usertable a,citytable b
  WHERE a.cityid=b.cityid 

  SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。

  例如:

  SELECT a.au_fname+a.au_lname
  FROM authors a,titleauthor ta
  (SELECT title_id,title
  FROM titles
  WHERE ytd_sales>10000
  ) AS t
  WHERE a.au_id=ta.au_id
  AND ta.title_id=t.title_id 

  此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。

  (三) 使用WHERE子句设置查询条件

  WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:

  SELECT *
  FROM usertable
  WHERE age>20 

  WHERE子句可包括各种条件运算符:

  比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<
  范围运算符(表达式值是否在指定的范围):BETWEEN…AND…
  NOT BETWEEN…AND…
  列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2……)
  NOT IN (项1,项2……)
  模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE
  空值判断符(判断表达式是否为空):IS NULL、NOT IS NULL
  逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR

  1、范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30

  2、列表运算符例:country IN ('Germany','China')

  3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等类型查询。

  可使用以下通配字符:

  百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。

  下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。

  方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

  例如:

  限制以Publishing结尾,使用LIKE '%Publishing'

  限制以A开头:LIKE '[A]%'

  限制以A开头外:LIKE '[^A]%'

  4、空值判断符例WHERE age IS NULL

  5、逻辑运算符:优先级为NOT、AND、OR

  (四)查询结果排序

  使用ORDER BY子句对查询返回的结果按一列或多列排序。ORDER BY子句的语法格式为:

  ORDER BY {column_name [ASC|DESC]} [,…n]

  其中ASC表示升序,为默认值,DESC为降序。ORDER BY不能按ntext、text和image数据类型进行排序。

  例如:

  SELECT *
  FROM usertable
  ORDER BY age desc,userid ASC 

  另外,可以根据表达式进行排序。

  二、 联合查询

  UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。UNION的语法格式为:

  select_statement
  UNION [ALL] selectstatement
  [UNION [ALL] selectstatement][…n] 

  其中selectstatement为待联合的SELECT查询语句。

  ALL选项表示将所有行合并到结果集合中。不指定该项时,被联合查询结果集合中的重复行将只保留一行。

  联合查询时,查询结果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语句中定义。要对联合查询结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号。

  在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型。在自动转换时,对于数值类型,系统将低精度的数据类型转换为高精度的数据类型。

  在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:

  查询1 UNION (查询2 UNION 查询3)

  三、连接查询

  通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。

  在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行查询。

  连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。

  SQL-92标准所定义的FROM子句的连接语法格式为:

  FROM join_table join_type join_table
  [ON (join_condition)] 

  其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接又称做自连接。

  join_type 指出连接类型,可分为三种:内连接、外连接和交*连接。内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。

  交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

  连接操作中的ON (join_condition) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。

  无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如:

  SELECT p1.pub_id,p2.pub_id,p1.pr_info
  FROM pub_info AS p1 INNER JOIN pub_info AS p2
  ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info) 

  (一)内连接

  内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:

  1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

  2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。

  3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。

  例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:

  SELECT *
  FROM authors AS a INNER JOIN publishers AS p
  ON a.city=p.city

  又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state):

  SELECT a.*,p.pub_id,p.pub_name,p.country
  FROM authors AS a INNER JOIN publishers AS p
  ON a.city=p.city 

  (二)外连接

  内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。如下面使用左外连接将论坛内容和作者信息连接起来:

SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b
  ON a.username=b.username 
  

  下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市:

  SELECT a.*,b.*
  FROM city as a FULL OUTER JOIN user as b
  ON a.username=b.username 

  (三)交叉连接

  交*连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下列交*连接检索到的记录数将等

  于6*8=48行。

  SELECT type,pub_name
  FROM titles CROSS JOIN publishers
  ORDER BY type
  [Post=0][/Post] 

- 作者: matchchen 2005年11月11日, 星期五 21:05  回复(0) |  引用(1) 加入博采

(z)truncate,delete,drop的异同点
注意:这里说的delete是指不带where子句的delete语句
相同点
truncate和不带where子句的delete, 以及drop都会删除表内的数据

不同点:
1. truncate和 delete只删除数据不删除表的结构(定义)
    drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
   truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
  显然drop语句将表所占用的空间全部释放
  truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;   truncate会将高水线复位(回到最开始).
4.速度,一般来说: drop> truncate > delete
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及
使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据

原文地址:
http://www.chinaitpower.com/2005September/2005-09-13/196948.html

- 作者: matchchen 2005年11月11日, 星期五 21:01  回复(0) |  引用(1) 加入博采

OMG文档分类

omg.org网站上有关于MDAUMLCWMMOFCORBA等的规范文档(specification),可以从http://www.omg.org/technology/documents/spec_summary.htm规范文档一览表)上找到你需要阅读的规范文档并下载。例如UML的最新规范在http://www.omg.org/technology/documents/modeling_spec_catalog.htm页面可以找到,名称为Unified Modeling Language™ (UML®)

OMG文档主要分为两大类:
I
类文档Recently Adopted Specifications 或者 Recently Adopted Revisions
 
指技术已经被OMG采纳但还在根据OMG P&R(政策与规程)进行编辑的版本。
II
类文档Available Specifications
  指已经根据OMG P&G完成所有阶段编辑的版本。

文档的处理状态如下几种:
1
Adopted Submission:
以通过董事会投票采纳了的Specification,但还没有作为正式OMG文档编辑出版。
2
Draft Adopted SpecificationI类文档):
Adopted Submission按照OMG出版格式简单格式化后的版本。允许早期实现。
3
Final Adopted SpecificationI类文档):
作为FTFFinal Task Force,是被特许将被采纳的技术编成specification出版的团体)的基线(baseline)文档。
4
FTF Report
FTF
的报告,包括对Final Adopted Specification的使用指南(instruction)和修改。
5
Proposed Available Specification
OMG P&G
术语,是FTF ReportFinal Adopted Specification的综合。是准备出版的规范。
6
Available SpecificationII类文档):
基于一个FTF ReportProposed Available Specification,并已经完成所有编辑的文档。是OMG的公开可用版本(Version x.y)。
7
RTF Report
一个RTFRevision Task Force,被特许可以处理已经出版的Specification中的问题的团体)的报告,以一个Available Specification作为其基线文档,定义了对它的使用指南(instruction)和修改。
8
Proposed Available Revision
OMG P&G
术语,是RTF ReportAvailable Specification的综合。这个修订版本将作为该Specification的下一个version

整个流程如下图所示:


Working document

Process event

Final Adopted Specification

submission adopted; FTF begins

Proposed Available Specification

FTF report completed; vote underway

Available Specification

adoption of FTF report

Version 1.0

formal publication

Proposed Available Revision

RTF report completed; vote underway

Available Revision

adoption of RTF report

Version x.y

formal publication

参考文档:
Getting Specifications and Products(How to find a document)
Specifications Catalog
OMG Specifications Tutorial
OMG Process Help Page

 

- 作者: matchchen 2005年10月30日, 星期日 16:44  回复(0) |  引用(1) 加入博采

网上的北京市地图

- 作者: matchchen 2005年10月30日, 星期日 15:13  回复(3) |  引用(2) 加入博采

已锁定
此日志的浏览权限已被作者锁定,请同作者联系,发送短消息,如果你的身份符合作者的要求,点击此处可以进行浏览

- 作者: matchchen 2005年10月30日, 星期日 14:17  回复(0) |  引用(1) 加入博采

(z)什么是VOL版和VLK版本?
Volume Licensing 101——何谓OEM、FPP、VOL光盘
win xp有很多种版本,比如免激活版、零售版等等,不过这些叫法太多太乱很不方便记忆。

我认为通过讨论光盘的不同来区分xp会更加容易。

xp版本虽多,但是很多版本的安装光盘确是相同的,因为m$不可能为了每一种版本都生产出相对应的光盘,而只能是以相同内容的光盘配合以不同的许可协议构成不同的版本!(既很多种版本都使用同一张光盘。)

按照2002年8月1日实行的Volume Licensing 101来看,我们通常只接触到3种可以直接全新安装的CD光盘。也可以理解为只有3种版本的光盘。



Original Equipment Manufacturer
You may license products through an Original Equipment Manufacturer (OEM). These products, such as Windows operating systems, come installed when you purchase a new computer.

OEM软件是给电脑生产厂的版本,无需多说。



Full Packaged Product (FPP)–Retail
Physical, shrink-wrapped boxes of licensed product that can be purchased in a local retail store or any local software retailer.

FPP就是零售版(盒装软件),这种产品的光盘的卷标都带有"FPP"字样,比如英文WXP Pro的FPP版本的光盘卷标就是WXPFPP_EN,其中WX表示是Windows XP,P是Professional(H是Home),FPP表明是零售版本,EN是表明是英语。获得途径除了在商店购买之外,某些MSDN用户也可以得到。



Volume Licensing for Organizations
You may enjoy potentially significant savings by acquiring multiple product licenses. Depending on the size and type of your organization.

团体批量许可证(大量采购授权合约),这是为团体购买而制定的一种优惠方式。这种产品的光盘的卷标都带有"VOL"字样,取"Volume"前3个字母,以表明是批量,比如英文WXP Pro的VOL版本的光盘卷标就是WXPVOL_EN,其中WX表示是Windows XP,P是Professional(VOL没有Home版本),VOL表明是团体批量许可证版本,EN是表明是英语。获得途径主要是集团购买,某些MSDN用户也可以得到。

这种版本根据购买数量等又细分为“开放式许可证”、“选择式许可证”、“企业协议”、“学术教育许可证”等以下5种版本


Open License

Select License

Enterprise Agreement

Enterprise Subscription Agreement

Academic Volume Licensing



由此可见,我们平时说的什么select/corp是许可证授权方式,他的出现是为了用若干种不同级别的优惠政策卖同一种软件,通过select/corp许可证授权方式得到的光盘都是VOL这一种、是并不是有很多种,只不过是相同的VOL光盘配以不同的许可证方式。

购买了软件自然会得到sn,而用于VOL版本的光盘上面的软件的安装所需要的sn就叫做Volume Licensing (Product) Keys,即VLK。所以说,VLK仅仅是一个为证明产品合法化、以及安装所使用的Key,

或者说,VLK不是指一种版本,而是指这种版本在部署(deploy)过程中所需要的Key,而需要VLK这种Key的版本应该叫做VOL!只不过在实际中,没有必要强调这种叫法、称呼的准确性,加之很多人的VOL版本光盘是通过企业的选择式许可证、企业协议等方式得到的等等原因,所以才会有很多人叫他为“选择版”等等。

官方网站有一个表格,上面有一句话:“Different products require different Volume Licensing Keys (VLKs). Refer to the table below to make sure you have the correct VLK for your Microsoft product.”,我想这就很好的说明了VLK指的是Key而不是产品了。

为了满足企业用户的要求,VOL版本光盘上的xp在安装后是不需要激活。

希望大家以后能标注是FPP还是VOL的产品,这样下载就会变得轻松多了,大家也就不会忙于这些冗余的概念中了。


匆忙之中难免有误,还望给与批评指正。office xp可能不完全适用。

----------------------------------------------------
W2K_SERVER_FPP_CN_ISO这是FPP零售的
XP_HOME_PRO_FPP_CN_ISO这是FPP零售的
XP_HOME_PRO_FPP_EN_ISO这是FPP零售的
XP_PRO_VOL_EN_ISO这是VOL的
XP_PRO_VOL_HK_ISO这是VOL的

- 作者: matchchen 2005年10月22日, 星期六 21:52  回复(0) |  引用(1) 加入博采

经典智力题及其解答

最近从网上收集了一些经典的智力题,跟大家分享:

1。海盗分金问题
传说,从前有五个海盗抢得了100枚金币.他们通过了一个如何确定选用谁的分配方案的安排.即:
1.抽签决定各人的号码(1,2,3,4,5);
2.先由1号提出分配方案,然后5个人表决.当且仅当超过半数人同意时,方案才算被通过,否则他将被扔入大海喂鲨鱼;
3.当1号死后,再由2号提方案,4个人表决,当且仅当超过半数同意时,方案才算通过,否则2号同样将被扔入大海喂鲨鱼;
4.往下依次类推……
根据上面的这个故事,现在提出如下的一个问题.即:
我们假定每个海盗都是很聪明的人,并且都能够很理智地判断自己的得失,从而做出最佳的选择,那么第一个海盗应当提出怎样的分配方案才能够使自己不被扔入大海喂鲨鱼,而且收益还能达到最大化呢?

2。帽子问题(疯狗问题与此同理)
一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其他人帽子的颜色,却不知自己的。主持人先让大家看看别人头上戴的什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?

3。称球问题:
一共12个一样的小球, 其中只有一个重量与其它不一样(未知轻重),给你一个天平, 只称三次, 找出那个不同重量的球?
如果一共13个一样的小球, 其中只有一个重量与其它不一样(未知轻重),给你一个天平, 只称三次, 找出那个不同重量的球?

4。分金条问题:
你让某些人为你工作了七天, 你要用一根金条作为报酬。这根金条要被分成七块。你必须在每天的活干完后交给他们一块。如果你只能将这根金条切割两次,你怎样给这些工人分?

5。猴子搬香蕉问题:
一个小猴子边上有100根香蕉,它要走过50米才能到家,每次它最多搬50根香蕉,每走1米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。

6。飞机加油问题:
每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈。
为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)

7。硬币游戏:
16个硬币,A和B轮流拿走一些,每次拿走的个数只能是1,2,4中的一个数。
谁最后拿硬币谁输。
问:A或B有无策略保证自己赢?

8。倒水问题:
也可以说是倒酒:)有三个酒杯,其中两个大酒杯每个可以装8两酒,一个可以装3两酒。现在两个大酒杯都装满了酒,只用这三个杯子怎么把酒平均的分给4个人喝?

9。帽子问题2:
有一个牢房,有3个犯人关在其中。因为玻璃很厚,所以3个人只能互相看见,不能听到对方说话的声音。”
    有一天,国王想了一个办法,给他们每个人头上都戴了一顶帽子,只叫他们知道帽子的颜色不是白的就是黑的,不叫他们知道自己所戴帽子的是什么颜色的。在这种情况下,国王宣布两条如下:
     1.谁能看到其他两个犯人戴的都是白帽子,就可以释放谁;
     2.谁知道自己戴的是黑帽子,就释放谁。
    其实,国王给他们戴的都是黑帽子。他们因为被绑,看不见自己罢了。于是他们3个人互相盯着不说话。可是不久,心眼灵的A用推理的方法,认定自己戴的是黑帽子。您想,他是怎样推断的?

10。年龄问题:
一普查員問一女人,“你有多少個孩子,他們多少歲?”女人回答:“我有三個孩子,他們的歲數相乘是36,歲數相加就等於隔離間屋的門牌號碼.”普查員立刻走到隔鄰,看了一看,回來說:”我還需要多少資料.”女人回答:“我現在很忙,我最大的孩子正在樓上睡覺.”普查員說:”謝謝,我己知道了
問題:那三個孩子的歲數是多少。

答案:
1。从后向前推,如果1-3号强盗都喂了鲨鱼,只剩4号和5号的话,5号一定投反对票让4号喂鲨鱼,以独吞全部金币。所以,4号惟有支持3号才能保命。3号知道这一点,就会提(100,0,0)的分配方案,对4号、5号一毛不拔而将全部金币归为已有,因为他知道4号一无所获但还是会投赞成票,再加上自己一票,他的方案即可通过。不过,2号推知到3号的方案,就会提出(98,0,1,1)的方案,即放弃3号,而给予4号和5号各一枚金币。由于该方案对于4号和5号来说比在3号分配时更为有利,他们将支持他而不希望他出局而由3号来分配。这样,2号将拿走98枚金币。不过,2号的方案会被1号所洞悉,1号并将提出(97,0,1,2,0)或(97,0,1,0,2)的方案,即放弃2号,而给3号一枚金币,同时给4号(或5号)2枚金币。由于1号的这一方案对于3号和4号(或5号)来说,相比2号分配时更优,他们将投1号的赞成票,再加上1号自己的票,1号的方案可获通过,97枚金币可轻松落入囊中。这无疑是1号能够获取最大收益的方案了!
参考文章:
凶猛海盗的逻辑
(本帖改编自《科学美国人》杂志中IanStewart的《凶猛海盗的逻辑》)
海盗,大家听说过吧。这是一帮亡命之徒,在海上抢人钱财,夺人性
命,干的是刀头上舔血的营生。在我们的印象中,他们一般都瞎一只
眼,用条黑布或者讲究点的用个黑皮眼罩把坏眼遮上。他们还有在地
下埋宝的好习惯,而且总要画上一张藏宝图,以方便后人掘取。不过
大家是否知道,他们是世界上最民主的团体。参加海盗的都是桀骜不
驯的汉子,是不愿听人命令的,船上平时一切事都由投票解决。船长
的唯一特权,是有自己的一套餐具--可是在他不用时,其他海盗是
可以借来用的。船上的唯一惩罚,就是被丢到海里去喂鱼。
现在船上有若干个海盗,要分抢来的若干枚金币。自然,这样的问题
他们是由投票来解决的。投票的规则如下:先由最凶猛的海盗来提出
分配方案,然后大家一人一票表决,如果有50%或以上的海盗同意这个
方案,那么就以此方案分配,如果少于50%的海盗同意,那么这个提出
方案的海盗就将被丢到海里去喂鱼,然后由剩下的海盗中最凶猛的那
个海盗提出方案,依此类推。
我们先要对海盗们作一些假设。
1)每个海盗的凶猛性都不同,而且所有海盗都知道别人的凶猛性,也
就是说,每个海盗都知道自己和别人在这个提出方案的序列中的位置。
另外,每个海盗的数学和逻辑都很好,而且很理智。最后,海盗间私
底下的交易是不存在的,因为海盗除了自己谁都不相信。
2)一枚金币是不能被分割的,不可以你半枚我半枚。
3)每个海盗当然不愿意自己被丢到海里去喂鱼,这是最重要的。
4)每个海盗当然希望自己能得到尽可能多的金币。
5)每个海盗都是现实主义者,如果在一个方案中他得到了1枚金币,而
下一个方案中,他有两种可能,一种得到许多金币,一种得不到金币,
他会同意目前这个方案,而不会有侥幸心理。总而言之,他们相信二
鸟在林,不如一鸟在手。
6)最后,每个海盗都很喜欢其他海盗被丢到海里去喂鱼。在不损害自
己利益的前提下,他会尽可能投票让自己的同伴喂鱼。
现在,如果有10个海盗要分100枚金币,将会怎样?
要解决这类问题,我们总是从最后的情形向后推,这样我们就知道在
最后这一步中什么是好的和坏的决定。然后运用这个知识,我们就可
以得到最后第二步应该作怎样的决定,等等等等。要是直接就从开始
入手解决问题,我们就很容易被这样的问题挡住去路:"要是我作这
样的决定,下面一个海盗会怎么做?"
以这个思路,先考虑只有2个海盗的情况(所有其他的海盗都已经被丢
到海里去喂鱼了)。记他们为P1和P2,其中P2比较凶猛。P2的最佳方
案当然是:他自己得100枚金币,P1得0枚。投票时他自己的一票就足
够50%了。
往前推一步。现在加一个更凶猛的海盗P3。P1知道--P3知道他知道
--如果P3的方案被否决了,游戏就会只由P1和P2来继续,而P1就一
枚金币也得不到。所以P3知道,只要给P1一点点甜头,P1就会同意他
的方案(当然,如果不给P1一点甜头,反正什么也得不到,P1宁可投
票让P3去喂鱼)。所以P3的最佳方案是:P1得1枚,P2什么也得不到,
P3得99枚。
P4的情况差不多。他只要得两票就可以了,给P2一枚金币就可以让他
投票赞同这个方案,因为在接下来P3的方案中P2什么也得不到。P5也
是相同的推理方法只不过他要说服他的两个同伴,于是他给每一个在
P4方案中什么也得不到的P1和P3一枚金币,自己留下98枚。
依此类推,P10的最佳方案是:他自己得96枚,给每一个在P9方案中什
么也得不到的P2,P4,P6和P8一枚金币。
下面是以上推理的一个表(Y表示同意,N表示反对):
P1 P2
0 100
N Y
P1 P2 P3
1 0 99
Y N Y
P1 P2 P3 P4
0 1 0 99
N Y N Y
P1 P2 P3 P4 P5
1 0 1 0 98
Y N Y N Y
……
P1 P2 P3 P4 P5 P6 P7 P8 P9 P10
0 1 0 1 0 1 0 1 0 96
N Y N Y N Y N Y N Y
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
现在我们将海盗分金问题推广:
1)改变一下规则,投票中方案必须得到超过50%的票数(只得到50%票
数的方案的提出者也会被丢到海里去喂鱼),那么如何解决10个海盗
分100枚金币的问题?
2)不改变规则,如果让500个海盗分100枚金币,会发生什么?
3)如果每个海盗都有1枚金币的储蓄,他可以把这枚金币用在分配方案
中,如果他被丢到海里去喂鱼,那么他的储蓄将被并在要分配的金币
堆中,这时候又怎样?
通过对规则的细小改变,海盗分金问题可以有许多变化,但是最有趣
的大概是1)和2)(规则仍为50%票数即可)的情况,本帖只对这两种情
况进行讨论。
首先考虑1)。现在只有P1和P2的情形变得对P2其糟无比:1票是不够的,
可是就算他把100枚金币都给P1,P1也照样会把他丢到海里去。可是P2
很关键,因为如果P3进行分配方案的话,即使他一枚金币也不给P2,
P2也会同意,这样一来P3就有P2这张铁票!P3的最佳方案就是:独吞
100枚金币。
P4要3张票,而P3是一定反对他的,而如果不给P2一点甜头,P2也会反
对,因为P2可以在P3的方案中得救,目前为什么不把P4丢到海里呢?
所以要分别给P1和P2一枚金币,这样P4就有包括他自己1票的3票。P4
的方案为:P1,P2每人1枚金币,他自己98枚。
P5的情况要复杂点,他也要3票。P4是会反对他的,所以不用给,给
P3一枚金币就能使他支持自己的方案,因为在接下来的P4方案中他什
么也得不到。问题是P1和P2:只要其中有一个支持就可以了。可是只
给1枚金币是不行的,P4方案中他们一定有1枚金币可得,所以只要在
他们中随便选一个,给2枚金币,另一个就对不起了,不给。这样P5
的方案是:自己97枚,P3得1枚,P1或P2得2枚。
P6的方案建立在P5的上面,只要给每个P5方案中不得益的海盗1枚金币。
要注意的是,P1和P2都应该看作在P5方案中不得益的:他们可能得2枚,
可是也可能1枚不得,所以只要P6给他们1枚金币,根据"二鸟在林,
不如一鸟在手"的原则,就可以让他们支持P6的方案。所以P6的方案
是唯一的:P1,P2,P4每人1枚金币,P6自己拿97枚。
这样继续下去,P9的方案是:P3,P5,P7每人1枚金币,然后在P1,
P2,P4,P6中任选一人给2枚金币,P9自己得95枚。最后,P10的方案
是唯一的:P1,P2,P4,P6,P8每人1枚金币,P10自己得95枚。
2)是最有趣的(提醒:我们回到50%票即可的规则)。原题解中的推理
过程直到200个海盗都是成立的:P200给每个偶数号的海盗1枚金币,
包括他自己,其他海盗什么也得不到。从P201开始,继续推理就变得
有点困难了:P201为了不被丢到海里去,必须什么也不留给自己,而
给从P1到P199中所有奇数号海盗每人1枚金币,从而争取到100票,加
上他自己1票,逃过一劫。P202也什么都得不到,他必须用这100枚金
币买通100个从P201的方案中什么也得不到的海盗,要注意到现在这个
方案不是唯一的:P201的方案中得不到金币的海盗是所有奇数号的海
盗,有101个(包括P201),所以有101种方案。
P203必须得到102票,除了自己的1票外,他只有100枚金币,所以只能
买到100票,所以可怜的家伙就被丢到海里喂鱼了。但是,P203是个很
重要的角色,因为P204知道如果自己的方案不被通过,P203也一样会
完蛋,所以他有P203的一张铁票。所以P204可以大出一口气:他自己
一票,加上P203一票,然后加上用100枚金币买的确100票,他就得救
了!100个有幸得到1枚金币的海盗,可以是P1到P202中任何100个:因
为其中的偶数号的从P202的方案中什么也得不到,如果P204给他们中
某个海盗1枚金币,这个海盗一定会赞同这个方案;而编号为奇数的海
盗呢,只是有可能从P202的方案中得益罢了(可能性为100/101),所
以根据"二鸟在林,不如一鸟在手"的原则,如果能得到1枚金币,他
也会赞同这个方案。
接下去P205是不能把希望放在P203和P204这两张票上的,因为就算他
被丢到海里去,P203和P204还可以通过P204的方案机会活下来。P206
虽然可以靠P205的铁票,加上自己1票和100枚金币搞到的100票,只有
102票,所以他也被丢到海里喂鱼。P207好不了多少,他需要104票,
而他自己以及P205和P206的铁票加上100枚金币搞到的100票只有103票
--只好下海。
P208运气比较好,他同样也要104票,可是P205,P206,P207都会投票
赞成他的方案!加上他自己的1票和买来的100票,他终于逃脱了做鱼
食的命运。
这样我们就有了一种可以一直推下去的新逻辑。海盗可以什么也不留
给自己,买上100票,然后依靠一部分一定会被丢下海的海盗的铁票,
从而让自己的方案通过。有这样运气的海盗分别是P201,P202,P204,
P208,P216,P232,P264,P328和P456……我们看到这样的号码是200
加上一个2的次幂。
哪些海盗是受益者呢,显然铁票是不用(不能)给金币的。所以只有
上一个幸运号码及他以前的那些海盗才有可能得到1枚金币。于是我们
得到500海盗分100枚金币的结论是:前44个最凶猛的海盗被丢进海里,
然后P456给P1到P328中的100个海盗每人1枚金币。
就这样,最凶猛的海盗被丢进海里,而比较凶猛的什么也得不到,而
只有最温柔的那些海盗,才有可能得到1枚金币。正如《马太福音》所
说:"温柔的人有福了,因为他们必承受地土!"(太5:5)

2。假如只有一个人戴黑帽子,那他看到所有人都戴白帽,在第一次关灯时就应自打耳光,所以应该不止一个人戴黑帽子;如果有两顶黑帽子,第一次两人都只看到对方头上的黑帽子,不敢确定自己的颜色,但到第二次关灯,这两人应该明白,如果自己戴着白帽,那对方早在上一次就应打耳光了,因此自己戴的也是黑帽子―――于是也会有耳光响起;可事实是第三次才响起耳光声,说明全场不止两顶黑帽,依此类推,应该是关几次灯,有几顶黑帽。

3。分3堆,每堆4个,第一次称任意两堆,如果第一次平衡,那么坏球就在剩下的4个中
拿出3个和3个正常的称,如果比正常的重,坏的球就是重球,如果轻,坏的球就是轻球,这个就是3个中有一个知道轻重的坏球的情况,可以用一次称出。如果和正常的平衡,那么就知道剩下那个是坏的了,而且还有一次,可以确定是轻是重。
分3堆,每堆4个,如果不平衡,且左边重,将左面盘里的任意3个球拿出,在将右面盘里任取3个放入左盘,最后将剩下的一堆中取3个放在右盘,此时有3种情况,1)左边仍重,则原来左盘剩下的1个球是重的或原来右盘剩下一个的球是轻的,再称一下即可判断。2)平衡,则前一步从左盘换下来的3个球有一个是重的。3)右盘重,则前一步从右盘移至左盘的球有一个是轻的。

4。1/7,2/7,4/7,第一天给1/7,第二天拿2/7换1/7………………

5。设小猴从0走到50,到A点时候他可以直接抱香蕉回家了,可是到A点时候他至少消耗了3A的香蕉(到A,回0,到A),一个限制就是小猴只能抱50只香蕉,那么在A点小猴最多49只香蕉.100-3A=49,所以A=17. 这样折腾完到家的时候香蕉剩100-3A-(50-A)=50-2A=16.

6。至少需要出动5 架飞机。思路是这样的,一架飞机要想完成绕地球一周的飞行,至少需要别的飞机给它提供1 箱油。最划算的办法显然是,派飞机和它结伴飞行前四分之一周以及后四分之一周,(因为这两段路程距离基地近所花代价小。)由它独立飞行中间的半程。必须保证两个加油点,前四分之一处,加满,后四分之一点,及时补充。那么必须有两架飞机与目标机结伴飞行四分之一周,这两架飞机需要做折返飞行,正好花费2 箱油。所以补充油的任务实际上该由另外两架飞机完成。这两架飞机飞八分之一周,做折返飞,正好富余1 箱油。因此,5 架飞机刚好完成任务。到了此时,问题只考虑了一半。能够提供多少油并不意味着就能够全部接受,受到结伴飞行的距离,即腾出的油箱空间所限制。而以下做法正好可以满足此条件。
3 架飞机同时从机场出发,飞行八分之一周,各耗油四分之一。此时某架飞机给其余两架补满油,自己返回基地。另一机和目标机结伴,飞至四分之一周,给目标机补满油,自己返回。目标机独自飞行半周,与从基地反向出发的一机相遇,2 机将油平分,飞至最后八分之一处,与从基地反向出发的另一机相遇,各分四分之一油,返回。

7。剩2个时,取1个必胜;
剩3个时,取2个必胜;
剩4个时,如果对手足够聪明则必败;
剩5个时,去1个必胜...
记作 2(1) 3(2) 4(x) 5(1) 6(2) 7(x) 8(1) ...
从中找出规律:
当剩余个数K=3N-2,N为自然数时,只要对手足够聪明则必败.
当K=3N-1时,有必胜策略: 取1个;
当K=3N时,有必胜策略:取2个;
所以,当16个时,后取者有必胜策略.

8。用一个三位数表示三个杯,880,前两个为8升的杯最后一个3升。开始:880_853A喝掉3升变为:850_823_B喝掉2升为:803_830_533_560_263_281A喝掉1升(A已经喝4升完毕)为:280_253_550_523_820_802_703_730_433_460_163_181CD各喝一升为:080_053_350_323CD各喝3升B喝2升,分水结束,ABCD四人各喝4升。

9。现在假设3个犯人是A、B和我
那么我的推断是:
第一种:我戴的是白帽子
那么A会这么想:如果自己戴的是白帽子,那么B就会看到2个白帽子,那么他根据国王的第一条就马上会被释放,但是B现在没有被释放,说明我戴的不是白的,是黑的,哈哈,我知道自己是黑的拉,我可以要求国王释放我拉
结论:如果我戴的是白帽子,那么根据A犯人的想法得出:A和B必然有一个会被释放,但是现在2个人都没有被释放,所以我一定不是白的,而是黑的,所以我会知道自己是黑的,要求国王释放我,这样,我就被放了
同理,A和B根据别人的想法也都算出自己是黑帽子,这样3个犯人同时被释放

10。 9,2,2
分析,设三个人的年龄组成自然数组合(x,y,z),一共三个条件,
条件一:三个人岁数乘起来为36;选出满足x*y*z=36的组合;
条件二:知道三个人岁数之和后还是不能确定它们的年龄;从上面的到的组合中找出xyz之和有相同的组合;
只有 (9,2,2)=13,(6,6,1)=13
条件三:三个孩子中有一个年龄比其他两个大。符合条件的组合只有(9,2,2)

- 作者: matchchen 2005年10月16日, 星期日 22:29  回复(0) |  引用(1) 加入博采

已锁定
此日志的浏览权限已被作者锁定,请同作者联系,发送短消息,如果你的身份符合作者的要求,点击此处可以进行浏览

- 作者: matchchen 2005年10月16日, 星期日 17:51  回复(0) |  引用(1) 加入博采