网上看到一个关于爱因斯坦的推断题,稍微做了下,但是总感觉答案不止一个。google了一下,果然如此,有些人说是丹麦的有些说是德国的。

为了达到最完美的结论,我决定用最原始的方法–穷举法做出来,我会编程我怕谁。。。

用了20分钟写了个java程序,大多数时间是在复制粘贴,来展示下部分代码吧。(Enum类型和bean就不写出来了)

格式就不整理了,放在eclipse里面format一下吧。

果然,答案不止丹麦和德国,还有一种情况是挪威!所有的排雷组合,3种德国,3种丹麦,1种挪威。

所以说这道题是个多选答案。我才是那2%的人,哈哈哈哈。

运行结果:(有些题目里的香烟牌子有所不同,反正不影响最终答案)

Green,Norway,Coffee,Bird,PALLMALL
Blue,Germany,Water,Fish,PRINCE
Red,England,Milk,Horse,MIX
Yellow,Danmark,Tea,Cat,DUNHILL
White,Sweden,Beer,Dog,BLUEMASTER
=========================
Green,Norway,Coffee,Bird,PALLMALL
Blue,Germany,Water,Cat,PRINCE
Red,England,Milk,Horse,MIX
Yellow,Danmark,Tea,Fish,DUNHILL
White,Sweden,Beer,Dog,BLUEMASTER
=========================
Green,Norway,Coffee,Bird,PALLMALL
Blue,Germany,Water,Cat,PRINCE
White,Sweden,Milk,Dog,MIX
Red,England,Beer,Horse,BLUEMASTER
Yellow,Danmark,Tea,Fish,DUNHILL
=========================
Green,Norway,Coffee,Bird,PALLMALL
Blue,Germany,Water,Fish,PRINCE
White,Sweden,Milk,Dog,MIX
Yellow,Danmark,Tea,Cat,DUNHILL
Red,England,Beer,Horse,BLUEMASTER
=========================
Green,Norway,Coffee,Bird,PALLMALL
Blue,Germany,Water,Cat,PRINCE
White,Sweden,Milk,Dog,MIX
Yellow,Danmark,Tea,Fish,DUNHILL
Red,England,Beer,Horse,BLUEMASTER
=========================
Green,Norway,Coffee,Fish,MIX
Blue,Germany,Water,Cat,PRINCE
Yellow,Sweden,Milk,Dog,DUNHILL
Red,England,Beer,Horse,BLUEMASTER
White,Danmark,Tea,Bird,PALLMALL
=========================
Yellow,Norway,Water,Cat,DUNHILL
Blue,Danmark,Tea,Horse,MIX
Red,England,Milk,Bird,PALLMALL
Green,Germany,Coffee,Fish,PRINCE
White,Sweden,Beer,Dog,BLUEMASTER

程序:(程序高手帮忙看下有没有bug,我懒得再看了,呵呵)

public class Main {

private int[][] map = {
{0,1,2,3,4}
,{0,1,2,4,3}
,{0,1,3,2,4}
,{0,1,3,4,2}
,{0,1,4,3,2}
,{0,1,4,2,3}
,{0,2,1,3,4}
,{0,2,1,4,3}
,{0,2,3,1,4}
,{0,2,3,4,1}
,{0,2,4,3,1}
,{0,2,4,1,3}
,{0,3,2,1,4}
,{0,3,2,4,1}
,{0,3,1,2,4}
,{0,3,1,4,2}
,{0,3,4,1,2}
,{0,3,4,2,1}
,{0,4,2,3,1}
,{0,4,2,1,3}
,{0,4,3,2,1}
,{0,4,3,1,2}
,{0,4,1,3,2}
,{0,4,1,2,3}
,{1,0,2,3,4}
,{1,0,2,4,3}
,{1,0,3,2,4}
,{1,0,3,4,2}
,{1,0,4,3,2}
,{1,0,4,2,3}
,{1,2,0,3,4}
,{1,2,0,4,3}
,{1,2,3,0,4}
,{1,2,3,4,0}
,{1,2,4,3,0}
,{1,2,4,0,3}
,{1,3,2,0,4}
,{1,3,2,4,0}
,{1,3,0,2,4}
,{1,3,0,4,2}
,{1,3,4,0,2}
,{1,3,4,2,0}
,{1,4,2,3,0}
,{1,4,2,0,3}
,{1,4,3,2,0}
,{1,4,3,0,2}
,{1,4,0,3,2}
,{1,4,0,2,3}
,{2,1,0,3,4}
,{2,1,0,4,3}
,{2,1,3,0,4}
,{2,1,3,4,0}
,{2,1,4,3,0}
,{2,1,4,0,3}
,{2,0,1,3,4}
,{2,0,1,4,3}
,{2,0,3,1,4}
,{2,0,3,4,1}
,{2,0,4,3,1}
,{2,0,4,1,3}
,{2,3,0,1,4}
,{2,3,0,4,1}
,{2,3,1,0,4}
,{2,3,1,4,0}
,{2,3,4,1,0}
,{2,3,4,0,1}
,{2,4,0,3,1}
,{2,4,0,1,3}
,{2,4,3,0,1}
,{2,4,3,1,0}
,{2,4,1,3,0}
,{2,4,1,0,3}
,{3,1,2,0,4}
,{3,1,2,4,0}
,{3,1,0,2,4}
,{3,1,0,4,2}
,{3,1,4,0,2}
,{3,1,4,2,0}
,{3,2,1,0,4}
,{3,2,1,4,0}
,{3,2,0,1,4}
,{3,2,0,4,1}
,{3,2,4,0,1}
,{3,2,4,1,0}
,{3,0,2,1,4}
,{3,0,2,4,1}
,{3,0,1,2,4}
,{3,0,1,4,2}
,{3,0,4,1,2}
,{3,0,4,2,1}
,{3,4,2,0,1}
,{3,4,2,1,0}
,{3,4,0,2,1}
,{3,4,0,1,2}
,{3,4,1,0,2}
,{3,4,1,2,0}
,{4,1,2,3,0}
,{4,1,2,0,3}
,{4,1,3,2,0}
,{4,1,3,0,2}
,{4,1,0,3,2}
,{4,1,0,2,3}
,{4,2,1,3,0}
,{4,2,1,0,3}
,{4,2,3,1,0}
,{4,2,3,0,1}
,{4,2,0,3,1}
,{4,2,0,1,3}
,{4,3,2,1,0}
,{4,3,2,0,1}
,{4,3,1,2,0}
,{4,3,1,0,2}
,{4,3,0,1,2}
,{4,3,0,2,1}
,{4,0,2,3,1}
,{4,0,2,1,3}
,{4,0,3,2,1}
,{4,0,3,1,2}
,{4,0,1,3,2}
,{4,0,1,2,3}
};
public void cal(){
Combine[] pos = new Combine[5];
for(int i=0;i<5;i++){
pos[i] = new Combine();
}
Color[] color = {
Color.Blue,
Color.Green,
Color.Red,
Color.White,
Color.Yellow};
Pet[] pet = {Pet.Dog,
Pet.Fish,
Pet.Horse,
Pet.Cat,
Pet.Bird};
Drink[] drink = {
Drink.Tea,
Drink.Beer,
Drink.Milk,
Drink.Water,
Drink.Coffee
};
Smoke[] smoke = {
Smoke.PALLMALL,
Smoke.DUNHILL,
Smoke.MIX,
Smoke.BLUEMASTER,
Smoke.PRINCE
};
Nation[] nation = {
Nation.England,
Nation.Germany,
Nation.Sweden,
Nation.Danmark,
Nation.Norway
};
for(int ci=0;ci<120;ci++){
int[] cm = map[ci];
for(int i=0;i<5;i++){
pos[i].setHourseColor(color[cm[i]]);
}
for(int pi=0;pi<120;pi++){
int[] pm = map[pi];
for(int i=0;i<5;i++){
pos[i].setPet(pet[pm[i]]);
}
for(int di=0;di<120;di++){
int[] dm = map[di];
for(int i=0;i<5;i++){
pos[i].setDrink(drink[dm[i]]);
}
for(int si=0;si<120;si++){
int[] sm = map[si];
for(int i=0;i<5;i++){
pos[i].setSmoke(smoke[sm[i]]);
}
for(int ni=0;ni<120;ni++){
int[] nm = map[ni];
for(int i=0;i<5;i++){
pos[i].setNation(nation[nm[i]]);
}
if(isVaild(pos))printCombine(pos);
}
}
}
}
}
}
public boolean isVaild(Combine[] pos){
//9.挪威人住在第一间
if(pos[0].getNation()!= Nation.Norway)return false;
//8.住中间的人喝牛奶
if(pos[2].getDrink()!= Drink.Milk)return false;
for(int i=0;i<5;i++){
Combine c = pos[i];
//1.英国人住在红房子
if(c.getNation()==Nation.England&&c.getHourseColor()!=Color.Red)return false;
//2.瑞典人养狗
if(c.getNation()==Nation.Sweden&&c.getPet()!=Pet.Dog)return false;
//3.丹麦人喝茶
if(c.getNation()==Nation.Danmark&&c.getDrink()!=Drink.Tea)return false;
//4.绿房子在白房子左边(这个之前阴了我下,我以为左边的意思是邻居呢。。)
if(c.getHourseColor()==Color.Green){
boolean hasWhite = false;
for(int j=i+1;j<5;j++){
if(pos[j].getHourseColor()==Color.White)hasWhite=true;
}
if(!hasWhite)return false;
}
//5.绿房子人喝咖啡
if(c.getHourseColor()==Color.Green&&c.getDrink()!=Drink.Coffee)return false;
//6.抽PALL MALL的人养鸟
if(c.getSmoke()==Smoke.PALLMALL&&c.getPet()!=Pet.Bird)return false;
//7.黄房子人抽DUNHILL
if(c.getHourseColor()==Color.Yellow&&c.getSmoke()!=Smoke.DUNHILL)return false;
//10.抽混合烟的人住在养猫人旁边
if(c.getSmoke()==Smoke.MIX){
if(i==0){
if(pos[1].getPet()!=Pet.Cat)return false;
}else if(i==4){
if(pos[3].getPet()!=Pet.Cat)return false;
}else{
if(pos[i-1].getPet()!=Pet.Cat&&pos[i+1].getPet()!=Pet.Cat)return false;
}
}
//11.养马人住在抽DUNHILL烟人的旁边
if(c.getPet() == Pet.Horse){
if(i==0){
if(pos[1].getSmoke()!=Smoke.DUNHILL)return false;
}else if(i==4){
if(pos[3].getSmoke()!=Smoke.DUNHILL)return false;
}else{
if(pos[i-1].getSmoke()!=Smoke.DUNHILL&&pos[i+1].getSmoke()!=Smoke.DUNHILL)return false;
}
}
//12.抽BLUE MASTER 烟人喝啤酒
if(c.getSmoke()==Smoke.BLUEMASTER&&c.getDrink()!=Drink.Beer)return false;
//13.德国人抽Prince
if(c.getNation()==Nation.Germany&&c.getSmoke()!=Smoke.PRINCE)return false;
//14.挪威人住在蓝房子旁边
if(c.getNation() == Nation.Norway){
if(i==0){
if(pos[1].getHourseColor()!=Color.Blue)return false;
}else if(i==4){
if(pos[3].getHourseColor()!=Color.Blue)return false;
}else{
if(pos[i-1].getHourseColor()!=Color.Blue&&pos[i+1].getHourseColor()!=Color.Blue)return false;
}
}
//15.抽混合烟的人的邻居喝水
if(c.getSmoke()==Smoke.MIX){
if(i==0){
if(pos[1].getDrink()!=Drink.Water)return false;
}else if(i==4){
if(pos[3].getDrink()!=Drink.Water)return false;
}else{
if(pos[i-1].getDrink()!=Drink.Water&&pos[i+1].getDrink()!=Drink.Water)return false;
}
}
}
return true;
}

public void printCombine(Combine[] pos){
for(int i=0;i<5;i++){
Combine c = pos[i];
System.out.print(c.getHourseColor());
System.out.print(“,”+c.getNation());
System.out.print(“,”+c.getDrink());
System.out.print(“,”+c.getPet());
System.out.print(“,”+c.getSmoke());
System.out.println(“===============================”);
}
}

public static void main(String[] args) {
new Main().cal();
}

}

中国彩票研究之大乐透

十二月 15th, 2011 | Posted by superwyb in 日志 - (0 Comments)

之前发了一篇关于双色球的研究,当然数字型彩票怎么能少了大乐透呢。我们这回来看看大乐透怎么样把。大乐透是属于体育彩票范畴的,每逢周一、周三、周六开奖,正好和双色球的周二、周四、周日形成互补,有兴趣的童鞋可以天天买彩票博大奖了。我一直不是很喜欢大乐透,一是第一映像不是很好,之前买过几期连5元都没中过,二是前驱虽然只要选5个,但是有35个选项,而后区虽然只有12个选项但是需要选2个球。让我很难去直观的去选择。最后就是最主要的,我觉得理论上不合算。为啥不合算,上表。

奖项 前区 后区 奖金 概率 概率*奖金/彩票金额 奖项概率数值
1 ●●●●● ●● 3000000 – 10000000 千万分之0.4667 0.07 – 0.2334 1/21425712
2 ●●●●● 30000 – 300000 百万分之0.9335 0.014 – 0.14 20/21425712
3 ●●●●● 6000 – 25000 十万分之0.21 0.006301 – 0.02625 45/21425712
4 ●●●● ●● 3000 十万分之0.7 0.0105 150/21425712
5 ●●●● 600 万分之1.4 0.0420 3000/21425712
6 ●●●● 100 千分之0.5181 0.0259 11100/21425712
●●● ●●
7 ●●● 10 百分之0.5955 0.0298 127600/21425712
●● ●●
8 ●● 5 十分之1.108 0.2770 2374085/21425712
●●
●●

即使是都算最高的“概率*奖金/彩票金额”,和值也只有0.7586,低于双色球的0.878(加奖情况),所以说双色球的加奖还是很给力的。这里没有考虑追加的情况,因为追加虽然浮动奖励60%固定奖励50%(除了8等奖),但是成本也上升了50%。所以基本对冲掉了。

奖金的不稳定也是风险很大的原因之一,2等奖从30000到300000都会有,3等奖居然有期只有6000元。好不容易中奖了,结果钱都给少了。

各个奖项的“概率*奖金/彩票金额”数值除了8等奖比双色球的6等奖要回报率高点外,其他均低于同等水平的双色球。

值得注意的是,如同双色球3等奖一样,大乐透的4等奖,同样3000元的奖金,但是收益率超低。更加确定了我的推测,这等奖项是为了保证浮动奖的奖金数量所调整过的。如果调整小的奖项,那大家都没信心买下去了,只有调节这种中间地带,大多数人都不会受影响的,也不会在意。这个可是庄家的用心良苦啊。

在这里并没有诋毁大乐透,每个人有每个人的喜好,但是我还是喜欢双色球,哈哈。

中国彩票研究之双色球

十二月 14th, 2011 | Posted by superwyb in 日志 - (1 Comments)

我在500wan以及okooo网站上买过几乎所有的中国官方的彩票,包括足彩,双色球,大乐透等等。一直想总结一下各个彩票中奖概率以及收益率。双色球是最主流的数字型彩票之一,而且最近的加奖使它变为中国彩票界理论头等奖最高的彩票。我们先来看下双色球的情况。

奖项 红球 蓝球 奖金 概率 概率*奖金/彩票金额 奖项概率数值
1 ●●●●●● 大约在300万到1500万不等(具体根据销售情况,奖池,中奖人数,以及加奖情况而定) 千万分之0.5643 0.0846 – 0.4232 1/17721088
2 ●●●●●● 大约10万到50万不等(具体根据销售情况,奖池,中奖人数,以及加奖情况而定) 百万分之0.8464 0.0423 – 0.2116 15/17721088
3 ●●●●● 3000 十万分之0.9142 0.0137 162/17721088
4 ●●●●● 200 千分之0.4342 0.0434 7695/17721088
●●●●
5 ●●●● 10 百分之0.7758 0.0388 137475/17721088
●●●
6 ●● 5 十分之0.5889 0.1472 1043640/17721088

我们可以看到,即使是理论最高奖项,“概率*奖金/彩票金额”这一列的和为,0.878,还没有超过1。有人可能会问为啥要用1来比较,打个比方,假设你用1元去博1/10的概率,而奖金是10元,理论上这是一个很公平的博弈。但是庄家为了赚钱,肯定要设计各种规则来倾向于庄家自已。赌博的规则一般是短期内庄家和玩家是比较公平的,否则没有玩家去玩了,长期来说庄家肯定占优的。但是身披华丽的福利外衣而且又在天朝的双色球怎么能够允许赌博的存在呢,霸王条款在所难免啊。首先,所有彩票都是2元就至少让庄家的优势翻了倍。其次,500万元的单注上限也大大降低了庄家的风险。希望庄家这些钱能真正用到福利事业上去吧。。。

细心的人可能会发现,3等奖的“概率*奖金/彩票金额”数值特别低,说明回报率太低了,我想可能是庄家想要保证一等二等的奖金额度吧。如果你中了3等奖,那么你是最心痛的了,差一步就能有辆小汽车了,从BYD到BMW不等,呵呵。。。

所以说双色球不是一个能用来“博”的彩种,只能是根据自己的财力细水长流看老天爷了。

上周日happy一天开车回来,内环到南北高架那段超堵,无奈提前从沪太路扎道口下来。结果这一决定酿成了我第一次双车事故。。。

简单来说,我直行,对方转弯。他左侧车头刮蹭到我右后方,车门,轮毂,后保险杠都有损伤。对方全责。

接下来几个步骤是我感觉需要做的几件事情

  1. 报警
  2. 现场拍照,不管责任多么明了都需要拍照,以事实为依据。
  3. 将车靠边停靠不要影响交通
  4. 认定责任,交警开具责任认定书,决定处理方法(私了,保险)
  5. 到定损点定损
  6. 修理
  7. 向责任方或者向自己的保险公司理赔

等交警来了之后,先定责任,这时候你可以提前把驾驶证、行驶证、保险小单先准备好。认定好责任之后交警会开具一个责任单,这个东西一定要拿好。

如果你没有责任,那么就不需要打电话给自己的保险公司报案。对方报案即可。如果2车都能够开动,商量下到附近最近的定损点进行定损,不清楚的话可以问保险公司。定损点有多家保险公司派驻人员的,所以无需担心。先到总台去登记事故,(雪弗兰、别克有专用柜台,哈哈,VIP待遇),之后到对方的保险公司负责人那里进行定损。定损过程没啥特别的,就是拍拍照。记住一定要把受损部位全都找出来告诉定损员,当然也别忽悠他,毕竟人家是专业的,老伤新伤还是分的清的。

之后就会开具一个定损单。定损单上的价钱就是对方需要给你的钱,不管你花了1元钱修理还是1万元,他都只给你这上面定损的钱。如果定损员问你之后会在哪里修,你就直接说4S店,这样他就会按照4S店得价格定损。最后到哪里修或者修不修都无所谓,只要你能提供出正规发票出来,就能理赔。

如果你有责任,不管是部分还是全责都是需要给自己保险公司报案的。定损部分是一样的,只不过需要到你的保险公司定损了。

还有就是是定损中心工作时间是跨度比较大的。我去的那家晚上10点关门。

定损完毕之后就可以开车离开了,等到有空的时候去修理。

我是去私人地方修理的,定损1150,对方说1000元搞定,并且把其他有些自己弄的小伤一并解决。所以说如果车子开旧了,或者小伤太多,被撞撞也不是件坏事,哈哈。

修好后,拿到发票,你就要联系对方给钱了。记住,一定要是当面交易,一手交钱一手交货。

所谓的货不仅是发票,主要是以下几个

  1. 发票(修理厂)
  2. 维修单(修理厂)
  3. 责任认定书(交警)
  4. 交强险大保单复印件(自己,A4大小的那个)
  5. 驾驶证行驶证复印件(自己)
  6. 定损单(对方保险公司)

一手交钱,一手交货,钱到手了就放心了,之后都是浮云。

如果你是全责方,我想应该是全部反过来,我还没出过险,还没有经验。不过谁想有这种经验呢,哈哈。

 

MIUI无法直接拨打110

十一月 21st, 2011 | Posted by superwyb in 日志 - (1 Comments)

昨日开车,被人撞了,第一次发生交通事故,心里不免有些紧张。不过我还是比较冷静地将现场照片拍下后,将车子停到路边,开启双黄灯。

接下来就是需要报警了,坑爹的来了,我怎么也无法拨通110。打110后一直是自动语音提示,匪警请拨110,火警请拨119,救护请拨120,交通事故请拨122,再用英文重复一遍。。。尼玛太坑爹了吧,我拨的就是110啊,还叫我拨打110。。。还好对方拨打了110,警察后来赶到。。。

虽然车祸顺利解决,但是我还是心有余悸啊,还好这次小车祸把这个严重的问题暴露出来了,要是闹出人命了110打不通那可杯具了。。

后来网上查了下,有些手机打110前面需要加区号(貌似只有水货,没有求证过,毕竟110不是随便打的。。)

我的手机是三星i9100欧版的,MIUI出来后我就奔着它打出的专为国人定制的口号才刷成MIUI的,这么重要的定制为啥没有做修改。。。难道我以后走到一个新的地方第一件事情就是问–“乡戚们,请问你这的区号是啥?”

后来我又查证了电话账单,我拨打的110在10086那里根本没有通话记录。。。

亡羊补牢为时不晚,雷老板,MIUI的同志们,期待下一期更新能够修正这个问题。我还是会支持miui的。

RPT 添加AIX resource

十一月 18th, 2011 | Posted by superwyb in 工作 - (1 Comments)

RPT中如果要监控AIX server的资源使用情况需要安装一个守护进程服务叫做rstatd。

rstatd下载地址

http://sourceforge.net/projects/rstatd/files/rstatd/3.07/rstatd.tar.gz/download

下载下来后在服务器端输入以下命令

tar -xzvf  rstatd.tar.gz

cd rpc.rstatd

./configure

make

make install

/usr/local/sbin/rpc.rstatd start

然后配置RPT中的资源选项即可。之后上图。

参考出处

安装rstatd

http://www.51testing.com/?uid-77492-action-viewspace-itemid-44549

安装gcc

http://www.ningoo.net/html/2009/how_to_install_gcc_on_aix.html

http://sourceforge.net/projects/rstatd/files/rstatd/3.07/rstatd.tar.gz/download

69电池

十月 26th, 2011 | Posted by superwyb in 无图无真相 - (0 Comments)

69电池

盗梦空间

十月 26th, 2011 | Posted by superwyb in 无图无真相 - (0 Comments)

盗梦空间

新婚夫妇

十月 26th, 2011 | Posted by superwyb in 无图无真相 - (0 Comments)

新婚夫妇

IBM限定版Parker笔

十月 26th, 2011 | Posted by superwyb in 日志 - (0 Comments)

终于拿到保龄球比赛的奖品了,之前听说只是小玩偶所以没有抱太大期望。结果从Wayen那里接过来的是Parker水笔和一个IBM徽章,实在是大大超过了我的预期啊。心情暴涨,以图为证。
Parker