异度部落格

学习是一种生活态度。

0%

*OS:Fedora 16 TexLive Version: TexLive 2011

1)添加 rpm 源*

1
sudo rpm -i http://jnovy.fedorapeople.org/texlive/2011/packages.fc16/texlive-release.noarch.rpm

(其他版本可以到http://jnovy.fedorapeople.org/找下对应源)

2)安装 texlive2011

1
2
sudo yum clean all
sudo yum install texlive

3)下载中文库包 Url:http://bj.soulinfo.com/~hugang/tex/tex2007/YueWang-zhfonts-final_1.01.tar.bz2
解压后取出 texmf-var,将里面的内容分别复制到/usr/share/texlive/texmf-local 和/usr/share/texlive/texmf-var 里面
然后执行 sudo texhash,重新建立数据库

4)测试 documentclass{article}
usepackage{CJKutf8}
begin{document}
begin{CJK}{UTF8}{hei}
Hello , Latex !
你好,Latex
end{CJK}
end{document}

保存 test.tex 退出,然后,执行
latex test.tex
dvipdfm test.dvi

PS:如果运行时出现 CJKutf8.sty 找不到,执行 sudo yum install 'tex(CJKutf8.sty)'解决

在 Fedora 下安装了 Virtualbox,发现运行时出现以下问题:

Kernel driver not installed (rc=-1908)
The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing ‘/etc/init.d/vboxdrv setup’ as root. Users of Ubuntu, Fedora or Mandriva should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary.

然后以 root 身份运行/etc/init.d/vboxdrv setup 结果提示:

Stopping VirtualBox kernel modules [确定] Uninstalling old VirtualBox DKMS kernel modules [确定] Trying to register the VirtualBox kernel modules using DKMSError! Bad return status for module build on kernel: 3.2.3-2.fc16.i686 (i686) Consult /var/lib/dkms/vboxhost/4.0.8/build/make.log for more information.[失败] (Failed, trying without DKMS) Recompiling VirtualBox kernel modules [失败] (Look at /var/log/vbox-install.log to find out what went wrong)

解决方法: 先尝试:

1
2
sudo yum install -y kernel-headers kernel-devel dkms gcc
sudo /etc/init.d/vboxdrv setup

如果执行此操作,仍然出现上述错误。可以参考下面 安装 PAE 包, sudo yum install kernel-PAE-devel 。 完成后再执行 sudo/etc/init.d/vboxdrv setup

编辑距离,又称 Levenshtein 距离(也叫做 EditDistance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它们越是不同。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。俄罗斯科学家 Vladimir Levenshtein 在 1965 年提出这个概念。因此也叫 Levenshtein Distance,常用来衡量字符串相似度。

【算法过程】

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
int LevenshteinDistance(char s[1..m], char t[1..n])
{
// for all i and j, d[i,j] will hold the Levenshtein distance between
// the first i characters of s and the first j characters of t;
// note that d has (m+1)x(n+1) values
declare int d[0..m, 0..n]

for i from 0 to m
d[i, 0] := i // the distance of any first string to an empty second string
for j from 0 to n
d[0, j] := j // the distance of any second string to an empty first string

for j from 1 to n
{
for i from 1 to m
{
if s[i] = t[j] then
d[i, j] := d[i-1, j-1] // no operation required
else
d[i, j] := minimum
(
d[i-1, j] + 1, // a deletion
d[i, j-1] + 1, // an insertion
d[i-1, j-1] + 1 // a substitution
)
}
}

return d[m,n]
}

【代码】

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
#Levenshtein Distance Algorithm
#OS : Windows 7
#Python Version : Python 3.2
#IDE : VS2010 + PTVS

def levenshtein(str1, str2):
"""
Levenshtein Distance Algorithm
@param str1 string
@param str2 string
@return distance int
"""
#initialize dist
dist = [[0 for j in range(len(str2) + 2)] for i in range(len(str1) + 2)]
for i in range(len(str1) + 1):
dist[i + 1][0] = i
for j in range(len(str2) + 1):
dist[0][j + 1] = j
for i in range(len(str1)):
for j in range(len(str2)):
if str1[i] == str2[j]:
dist[i+1][j+1] = dist[i][j]
else:
dist[i+1][j+1] = min(dist[i][j+1], dist[i+1][j], dist[i][j]) + 1
return dist[len(str1)][len(str2)]

def main():
str1 = 'sitting'
str2 = 'kitten'
leven_dist = levenshtein(str1, str2)
print("str1=%s, str2=%s, distance=%d" % (str1, str2, leven_dist))

if __name__ == "__main__":
main()

【参考资料】 http://en.wikipedia.org/wiki/Levenshtein_distance

1)点击“服务器管理器” image1

2)点击“角色”->“添加角色” image2

3)点击“下一步” image3

4)选中“Web 服务器(IIS)” image4

5)点击“添加必需的功能”,点击下一步 image5

6)点击“下一步” image6

7)选中“应用程序开发”->“ASP.NET”以及“FTP 发布服务” image7 image8

8)点击安装 image9

9)测试 IIS,在 IE 中输入 http://localhost/,出席下面页面 image10

10)点击查看网络连接,配置 IP image11

11)开启网络连接 image12

1)语言选择,点击“下一步” image1

2)点击“现在安装” image2

3)选择所要安装的版本,点击“下一步” image3

4)勾起“我接受许可条款”,点击“下一步” image4

5)点击“自定义(高级)” image5

6)选择安装位置,点击“下一步” image6

7)开始安装 image7

8)首次登录需修改密码 image8

9)修改密码(密码需包含大写字母,小写字母,数字,长度超过 8 位) image9

【试题描述】
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。(PS:数组的不一定是n*n的矩阵)

【试题来源】未知

【试题分析】
总体思路就是使用递归+二分查找的方法,具体过程如下所示: 设二分查找的中间点为(m_x,m_y),其中 m_x = (s_x +e_x) / 2 m_y = (s_y +e_y) / 2 image image

【源代码Python】

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
#!/usr/bin/env python

def find_matrix(mat, s_x, s_y, e_x, e_y, key):
"""
mat:传入的矩阵
(s_x, s_y):矩阵左上角坐标值
(e_x, e_y):矩阵右下角坐标值
"""
#明确key不在矩阵中的时候
if mat[s_x][s_y] > key or mat[e_x][e_y] < key:
return False

#当矩阵规模为1*1的时候
if s_x == e_x and s_y == e_y:
if mat[s_x][s_y] == key:
print("(%s, %s)" % (s_x, s_y))
return True
else:
return False

#中间点坐标值
m_x = int((s_x + e_x) / 2)
m_y = int((s_y + e_y) / 2)
if mat[m_x][m_y] == key:
print("(%s, %s)" % (s_x, s_y))
return True
elif mat[m_x][m_y] > key:
#查询左上角,右上角,左下角矩阵
return find_matrix(mat,s_x, s_y, m_x, m_y, key) \
or find_matrix(mat,s_x, m_y + 1, m_x - 1, e_y, key) \
or find_matrix(mat,m_x + 1, s_y, e_x, m_y - 1, key)
elif mat[m_x][m_y] < key:
#查询左下角,右上角,右下角矩阵
return find_matrix(mat,m_x + 1, s_y, e_x, m_y, key) \
or find_matrix(mat,s_x, m_y + 1, m_x, e_y, key) \
or find_matrix(mat,m_x + 1, m_y + 1, e_x, e_y, key)

def main():
matrix = [[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]]
key = 24
if find_matrix(matrix, 0, 0, len(matrix) - 1, len(matrix[0]) - 1, key):
print("Found!")
else:
print("Not Found!")

if __name__ == '__main__':
main()

【参考资料】

http://topic.csdn.net/u/20111214/10/d09797c3-d1ce-4249-b1e5-8b693b4c85f8.html"http://topic.csdn.net/u/20111214/10/d09797c3-d1ce-4249-b1e5-8b693b4c85f8.html> http://justjavac.iteye.com/blog/1310178 http://nubnub.blog.163.com/blog/static/169186347201192411857362/

1 、搜索订阅
优酷中进行“视频搜索”的,如排行榜里的种种是是非非,如成龙等人的优酷,非本人视频空间,而是大量网友的上传后进行的视频搜索整合得到,都可通过复制网址订阅。

2、专辑订阅
进入专辑首页,网址里后缀中为 id_*。直接复制网址到 google reader 的添加订阅即可。

3、个人视频空间全部视频订阅:
由于优酷像新浪微博一样屏蔽了用户的真实 id,导致直接复制网址订阅无效。后缀中 id 后是一串字母,这是优酷对真实 id 进行了加密的结果。 解决方法:网页空白处右击,点击“查看源文件”。再打开的网页源文件中, Ctrl +F ,查找 id ,一般第二个 id 后的一串数字即为用户的真实 id 找到真实 id 后,再按照目前优酷视频空间的 RSS 的一般格式:http://www.youku.com/user/rss/id/真实 id(一串数字),添加到 google reader 即可。

转自:http://biotech.ustc.edu.cn/forum/forum.php?mod=viewthread&tid=10663