异度部落格

学习是一种生活态度。

0%

Euclidean 距离

定义:欧几里得空间中点 x = (x1,...,xn) 和 y = (y1,...,yn) 之间的距离为

image

两个变量之间的相关系数越高,从一个变量去预测另一个变量的精确度就越高,这是因为相关系数越高,就意味着这两个变量的共变部分越多,所以从其中一个变量的变化就可越多地获知另一个变量的变化。如果两个变量之间的相关系数为 1 或-1,那么你完全可由变量 X 去获知变量 Y 的值。

· 当相关系数为 0 时,X 和 Y 两变量无关系。

· 当 X 的值增大,Y 也增大,正相关关系,相关系数在 0.00 与 1.00 之间

· 当 X 的值减小,Y 也减小,正相关关系,相关系数在 0.00 与 1.00 之间

· 当 X 的值增大,Y 减小,负相关关系,相关系数在-1.00 与 0.00 之间

当 X 的值减小,Y 增大,负相关关系,相关系数在-1.00 与 0.00 之间

相关系数的绝对值越大,相关性越强,相关系数越接近于 1 和-1,相关度越强,相关系数越接近于 0,相关度越弱。

image

实现代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from math import sqrt

# A dictionary of movie critics and their ratings of a small
# set of movies
movies = {'Lisa Rose': {'Lady in the Water': 2.5,
'Snakes on a Plane': 3.5,
'Just My Luck': 3.0,
'Superman Returns': 3.5,
'You, Me and Dupree': 2.5,
'The Night Listener': 3.0},
'Gene Seymour': {'Lady in the Water': 3.0,
'Snakes on a Plane': 3.5,
'Just My Luck': 1.5,
'Superman Returns': 5.0,
'The Night Listener': 3.0,
'You, Me and Dupree': 3.5},
'Michael Phillips': {'Lady in the Water': 2.5,
'Snakes on a Plane': 3.0,
'Superman Returns': 3.5,
'The Night Listener': 4.0},
'Claudia Puig': {'Snakes on a Plane': 3.5,
'Just My Luck': 3.0,
'The Night Listener': 4.5,
'Superman Returns': 4.0,
'You, Me and Dupree': 2.5},
'Mick LaSalle': {'Lady in the Water': 3.0,
'Snakes on a Plane': 4.0,
'Just My Luck': 2.0,
'Superman Returns': 3.0,
'The Night Listener': 3.0,
'You, Me and Dupree': 2.0},
'Jack Matthews': {'Lady in the Water': 3.0,
'Snakes on a Plane': 4.0,
'The Night Listener': 3.0,
'Superman Returns': 5.0,
'You, Me and Dupree': 3.5},
'Toby': {'Snakes on a Plane':4.5,
'You, Me and Dupree':1.0,
'Superman Returns':4.0}}

def euclidean(data, p1, p2):
"Calculate Euclidean distance"
distance = sum([pow(data[p1][item]-data[p2][item],2)
for item in data[p1] if item in data[p2]])

return distance

def pearson(data, p1, p2):
"Calculate Pearson correlation coefficient"
corrItems = [item for item in data[p1] if item in data[p2]]

n = len(corrItems)
if n == 0:
return 0;

sumX = sum([data[p1][item] for item in corrItems])
sumY = sum([data[p2][item] for item in corrItems])
sumXY = sum([data[p1][item] * data[p2][item] for item in corrItems])
sumXsq = sum([pow(data[p1][item], 2) for item in corrItems])
sumYsq = sum([pow(data[p2][item],2) for item in corrItems])

pearson = (sumXY - sumX * sumY / n) / sqrt((sumXsq - pow(sumX, 2) / n) * (sumYsq - pow(sumY, 2) / n))
return pearson

【试题描述】 你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费? 分为1、2、4 三段。 Day1:给1

Day2:给2,还1

Day3:给1

Day4:给4,还1、2

Day5:给1,还2

Day6:给2,还1

Day7:给1

【试题描述】请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。

将蛋糕均分层8份,取七份给其中七个人,最后一份放入盒中给第八个。

【试题描述】小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会熄灭。问:小明一家如何过桥?

A:小明  1s

B:小明的弟弟  3s

C:小明的爸爸  6s

D:小明的妈妈  8s

E:小明的爷爷  12s 步骤 用时 位置状况 1 小明和小明的弟弟先过去 3s AB—CDE 2 小明的弟弟回来 3s A—BCDE 3 小明的妈妈和爷爷过去 12s ADE—BC 4 小明回来 1s DE—ABC 5 小明和他的爸爸过去 6s ACDE—B 6 小明回来 1s CDE—AB 7 小明和他的弟弟过去 3s ABCDE— 总用时:29s

【试题描述】一群人舞会,上都戴着一帽子。帽子只有黑白两,黑的至少有一个人都能看到其他人帽子的色,却看不到自己的。主持人先大家看看上戴的是什帽子,然后灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次灯,没有声音。于是再灯,大家再看一遍,仍然雀无声。一直到第三次灯,才有劈劈啪啪打耳光的声音响起。有多少人戴着黑帽子?

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

【试题描述】一楼到十楼的每层电口都放着一颗钻石,石大小不一。你乘坐梯从一楼到十楼,每层都会打一次,只能拿一次石,才能拿到最大的一

第一步:对1到3层的大小进行比较,记住最大的一颗m1。

第二步:4到6层作为参考,将4-6层的与m1作比较,确认最大的一个的平均水平m2。

第三步:在最后4层中当遇到与m2相近时直接拿下

(答案仅供参考)

PS:这个问题类似柏拉图的麦穗问题,属于哲学的范畴了,所以再深入讨论。

【试题描述】U2合唱17内得赶到演唱会,途中必需跨一座,四个人从的同一端出,你得帮助他到达另一端,天色很暗,而他只有一只手筒。一次同最多可以有两人一起过桥,而过桥候必持有手筒,所以就得有人把手去,来回两端。手筒是不能用的方式来传递的。四个人的行速度各不同,若两人同行慢者的速度准。Bono需花1钟过桥Edge需花2钟过桥Adam需花5钟过桥Lay需花10钟过桥。他要如何在17过桥呢?**
姓名 所用时间 简称
Bono 1 min B
Edge 2 min E
Adam 5 min A
Lay 10 min L
步骤 用时 位置状况
1 Bono和Edge过去 Max(1,2)=2min BE—AL
2 Bono回来 1min E—BAL
3 Adam和Lay过去 Max(5,10)= 10min EAL—B
4 Edge回来 2min AL—BE
5 Bono和Edge过去 Max(1,2)=2min BA EL—
总用时:17min

【试题描述】一根不均匀的要用一个小,如何用它来判断半个小?**

只要将绳子两头同时点上即可。

【试题描述】下水道的盖子是的?

参考答案一:相同面积下圆形的井盖最省材料。

参考答案二:圆形井盖可以避免井盖落入下水道中。

*【试题描述】7克、2克砝各一个,天平一只,如何只用些物品三次将140克的分成5090**克各一份?*

第一次:140 = 70 + 70 ,得到两份70g的

第二次:70 = 35 + 35,得到70,35,35

第三次:35 = (7 + 15)+ (2 + 20),得到70,35,15,20

70 + 20 = 90

35 + 15 = 50

*【试题描述】有一15公里的速度离洛杉直奔纽约,另一以第小20公里的速度从纽约开往洛杉。如果有一只,以外30公里的速度和两车现时,从洛杉,碰到另辆车后返回,依次在两来回的行,直道两面相遇,请问只小鸟飞行了多长**距离?*

设New York到LA的距离为S

s = vt = 30km/h S/(15+20)

*【试题描述】你有两个罐子,50球,50球,随机出一个罐子,随机取出一个球放入罐子,怎么给红球最大的中机会?在你的划中,得到红**球的准确几率是多少?*

A罐子里放1个红球,B罐子里放49个红球和蓝球。

选中A罐就等于选中那个红球,几率就是50%,而B罐子也有49/99的几率选到红球。

整个选到红球的几率就是50%+50%*49/99=99/198+49/198=148/198=74/99,

*【试题描述】你有四丸的罐子,丸都有一定的重量,被染的丸是没被染的重量+1.只称量一次,如何判断哪个罐子的污**染了?*

第一个罐子取1颗,第二个罐子取两颗,第三个罐子取3颗,第四个罐子取4颗。称得总重量,然后减去标准重量15,得到n。n为多少就是哪一罐被污染。

*【试题描述】如果你有无多的水,一个3夸脱的和一个5夸脱的提桶,你如何准确称出4**夸脱的水?*

首先用容量3的水桶装满,往容量5的水桶里面装水。然后再取3夸脱的水,将容量5的水桶装满。此时桶里会剩下1夸脱的水。此时,将容量为5的桶清空,将剩下的1夸脱倒过来。再取3夸脱加入即可。

*【试题描述】你有一桶果,其中有黄色,绿色,色三,,上眼睛出同样颜色的两个,抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一色的果冻**?*

4个。数量大于颜色,必定有相同的颜色。

*【试题描述】一批1~100全部开关朝上的灯行以下操作凡是1的倍数反方向一次开,2的倍数反方向又一次开关,3的倍数反方向又一次开关……最后为关熄状的灯的编**号。*

10盏是亮的,分别是1 4 9 16 25 36 49 64 81 100;90盏是灭的。

这是因为除了这些平方数以外,其余的任意一个数都能分成不同的两数乘积,质数可以分为1和本身,合数都可以分成若干组乘积(每组两个),因此,这些等都被拉了偶数倍,也就是灭的,平方数因为在被自己的开方数拉是只有一次,所以是奇数次,也就是亮的。随便举两个例子以证明。36分别被1、2、3、4、6、9、12、18、36拉过,共是9次,亮。38分别被1、2、19、38拉过,共是4次,灭。所以10盏是亮的;90盏是灭的

*【试题描述】张圆盘像唱机上的唱样转动这张盘一半是黑色,一半是白色。假你有数量不限的一些感器。要想确定圆盘转动的方向,你需要在它周围摆多少个感器?它们应该放在什么**位置?*

两个。

设两个传感器一个在12点位置(A),一个在1点的位置(B)。

首先利用传感器A的两次变化,估算出转盘转半圈所用的大致时间。然后计时,当B传感器变化的时间较短,证明是由A->B即顺时针。反之为逆时针。

*【试题描述】设时钟到了12点。注意时针和分重叠在一起。在一天之中,时针和分共重叠多少次?你知道它重叠的具体时间吗**?*

22次,即每一小时都会有一次重合(0点和24点视为一次)

分针一小时走360°,时针走30°,也就是说他们的速度差是330°/h。因此第一圈追上的时刻是360/330=(1 + 1/11),即1点5分多点。第二圈追上时刻720/330=2+ 2/11,即2点11分左右。因此得到所有的重叠时刻。

0,1 + 1/11,2 + 2/11,3 + 3/11,4+ 4/11,5 + 5/11,6 + 6/11,7 + 7/11,8 + 8/11,9 + 9/11,10 + 10/11,12,13 + 1/11,14 + 2/11,15 + 3/11,16 + 4/11,17 + 5/11,18 + 6/11,19 + 7/11,20 + 8/11,21 + 9/11,22 + 10/11

【试题描述】一个屋子有一个关闭的)和3盏电灯。屋外有3开关,分3灯相。你可以随意操纵这开关,可一旦你将,就不能变换开关了。确定开关具体管哪灯。**

先在门外打开一个开关,等一会儿,然后关掉它,再另开一个开关,再走到屋内,热而不亮的一个灯泡是第一个开关所控制,亮的便是第二个,不亮又不热的便是第三个开关所控制的了。

*【试题描述】你有8个球,其中一个略微重一些,但是找出个球的惟一方法是将两个球放在天平上比。最少要称多少次才能找出较**重的球?*

两次。

首选,天枰两边各放3个。如果平衡,取剩余两个,天枰上面各放一个可以得到结果;如果不平衡取下较重的三个记为ABC,将AB放在天枰两边,如果不平衡即得到结果,如果平衡C为较重的那个球。

*【试题描述】如果你有两个桶,一个装的是色的料,另一个装的是色的料。你从料桶里舀一杯,倒入料桶,再从料桶里舀一杯倒入蓝颜料桶。两个桶中红蓝颜料的比例哪个更高?通的方式来这**一点。*

假设两个桶里面的颜料各自为10,一杯的容量刚好是1

操作

状态

从蓝色颜料桶里舀一杯,倒入红色颜料桶 10R,1B 9B
再从红色颜料桶里舀一杯倒入蓝颜料桶 (10R + 1B)*(10/11) 9B + (10R + 1B)/11

因此红颜料桶的红蓝比例:10:1,蓝颜料桶红蓝比例:1:10。

【试题描述】

5个海盗抢到了100颗宝石,每一颗都一样的大小和价值连城。

他们决定这么分:

1.抽签决定自己的号码(1,2,3,4,5)

2.首先,由1号提出分配方案,然后大家5人进行表决,当且仅当超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼

3.如果1号死后,再由2号提出分配方案,然后大家4人进行表决,当且仅当超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼

4.以次类推

条件:

每个海盗都是很聪明的人,都能很理智的判断得失,从而做出选择

问题:

第一个海盗提出怎样的分配方案才能够使自己的收益最大化?

【试题分析】

首先,看4、5号.如果仅仅剩下这两人。4号肯定选100:0,因为即使5号不同意,按照规则,4号自己同意自己的提案,也算达到半数。所以,5号肯定不会等到4号来表决,他必须支持前三个提案中,给自己最多的一个提案,因为到了4号提案的时候,他肯定什么也得不到。可以推导到3号,如果3号选择给自己99个,4号0个,5号1个,那么5号就不得不同意了,因为这样他至少能得到一个,比最后由4号提案,他什么都得不到强。也就是说,轮到3号提案,他肯定是99:0:1。

也就是说,如果轮到3号选择,4号什么都得不到,那么4号肯定要在前二个提案里,选择一个给自己最多的提案。这时,2号只要在3、4、5号中,赢得一个支持者,就足够获得最终胜利。2号的提案可以是98:0:1:1或98:0:2:0。分析前者,5号在3号那里也可以得到这么多钻石,4号就没得选择,他必须同意2号得提案,否则3号提案时,他什么也分不到;后提案就是针对4号,虽然4号没机会选择,但如果给予他意外的惊喜,他会更加支持2号提案,可以使2号的此提案100%通过。其实这两种提案,本质上没有差别。

不难看出,3号在2号的两种提案里,都不会有好处,也就是说,3号只要能在1号提案中得到好处,就会支持1号的提案。于是,1号的提案里,要充分给予3号的利益,2号的完全可以可以忽略,因为无论如何,2号都不会同意1号的分配方案。

现在,3号只要能获得1个或者1个以上的钻石,4号只要获得2个或2个以上的钻石,5号只要获得1个或1个以上的钻石,就会支持1号提案。实际情况下,如果3、4号都同意,提案不需要5号同意照样可以

【参考答案】

1号自己利益最大化和确保提案通过的分配方法:

1号97个;2号0个;3号1个;4号2个;5号0个

系统工具

1)安装自动选择最快镜像插件 安装插件 fastestmirror,可以让 yum 管理器自动搜索最快源下载

1
sudo yum -y install yum-fastestmirror

2)添加 rpmfusion 源

1
sudo yum rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm

3)安装 GNOME-tweak-tool

1
sudo yum install gnome-tweak-tool

4)标题栏添加“最大化/最小化/关闭”按钮 可以通过安装 gnome-tweak-tool 来设置。打开 gnome-tweak-tool,“shell"-> Arrangement of buttons on the titlebar”可选择"All"

5)让桌面显示文件,激活右键功能 打开 gnome-tweak-tool,"Desktop","Have file manager handle the desktop","开启"

6)安装 gconf-editor:

1
sudo yum install gconf-editor

7)安装鼠标右键“在终端中打开”

1
sudo yum install nautilus-open-terminal

常用工具

安装 Gnome Do

1
sudo yum install gnome-do

安装 Compiz

1
2
sudo yum install compiz-manager
sudo yum install ccsm

安装 Docky

1
sudo yum install docky

安装解压缩软件 7z

1
sudo yum install p7zip p7zip-plugins

安装截图工具 shutter

1
sudo yum install shutter

安装小熊猫

1
sudo yum install ailurus

多媒体

安装 amarok

1
sudo yum install amarok

安装 smplayer

1
sudo yum install smplayer

安装 EasyTag

1
sudo yum install easytag

网络应用

安装 Chrome URL: www.google.cn/Chrome

安装 FTP 客户端

1
sudo yum install filezilla

通讯工具

安装 MSN 客户端

1
sudo yum install emesene

开发工具

gcc

1
sudo yum install gcc

g++

1
sudo yum install gcc-c++

autoconf && automake

1
sudo yum install autoconf automake

gdb

1
sudo yum install gdb

Geany

1
sudo yum install geany

vim

1
sudo yum install vim

Subversion

1
sudo yum install subversion

Git

1
sudo yum install git

Eclipse

1
sudo yum install eclipse-platform

CDT

1
2
sudo yum install eclipse-cdt
or http://download.eclipse.org/tools/cdt/releases/indigo

PyDev

1
2
sudo yum install eclipse-pydev
or http://pydev.org/updates

Subclipse

1
2
sudo yum install eclipse-subclipse
or http://subclipse.tigris.org/update_1.8.x

Texlipse

1
2
sudo yum install eclipse-texlipse
or http://texlipse.sourceforge.net

1)Math.round(x)
round() 方法可把一个数字四舍五入。

2)Math.floor(x)
floor() 方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数。

3)Math.ceil(x)
ceil() 方法执行的是向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。

1)删除左右两端的空格

1
2
function trim(str){
return str.replace(/(^\s*)|(\s*$)/g"");

2)  删除左边的空格

1
2
3
function ltrim(str) {
return str.replace(/(^\s*)/g, "");
}

3)  删除右边的空格

1
2
3
function rtrim(str) {
return str.replace(/(\s*$)/g, "");
}

安装自动选择最快镜像插件
安装插件 fastestmirror,可以让 yum 管理器自动搜索最快源下载

1
sudo yum -y install yum-fastestmirror

添加 rpmfusion 源

1
sudo yum rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm

安装 GNOME-tweak-tool

1
sudo yum install gnome-tweak-tool

标题栏添加“最大化/最小化/关闭”按钮
可以通过安装 gnome-tweak-tool 来设置。打开 gnome-tweak-tool,“shell"-> Arrangement of buttons on the titlebar”可选择"All"

安装 gconf-editor:

1
sudo yum install gconf-editor

让桌面显示文件,激活右键功能
打开 gnome-tweak-tool,"Desktop","Have file manager handle the desktop","开启"

安装鼠标右键“在终端中打开”

1
sudo yum install nautilus-open-terminal

安装 Gnome Do

1
sudo yum install gnome-do

安装 Compiz

1
2
sudo yum install compiz-manager
sudo yum install ccsm

安装 Docky

1
sudo yum install docky

安装解压缩软件 7z

1
sudo yum install p7zip p7zip-plugins

安装截图工具 shutter

1
sudo yum install shutter

安装小熊猫

1
sudo yum install ailurus

安装 MSN 客户端

1
sudo yum install emesene

安装邮件提醒

1
sudo yum install mail-notification mail-notification-evolution-plugin

安装 FTP 客户端

1
sudo yum install filezilla

安装 smplayer

1
2
3
4
sudo rpm -ivh http://rpm.livna.org/livna-release.rpm
sudo rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
sudo rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
sudo yum -y install smplayer

安装 Rhythmbox mp3 wma 支持插件

1
sudo yum install gstreamer-plugins-ugly gstreamer-plugins-bad gstreamer-ffmpeg

安装 EasyTag

1
sudo yum install easytag

安装 g++

1
sudo yum install gcc-c++