Thursday, October 22, 2009

[Linux]在ubuntu上安装/使用Chrome

1 获取并安装:

安装Chromium: http://www.ubuntugeek.com/how-to-install-chromium-google-chrome-in-ubuntu-using-deb-package.html
安装Google Chrome: http://dev.chromium.org/getting-involved/dev-channel

二者稍微有一些区别.Chromium是Google主持的开源项目. 任何人都可以去www.chromium.org去下载并编译Chromium. Google从Chromium获取源码后加入一些东西比如Updater然后以Google Chrome的名字发布.外观上二者图标颜色不一样.

2 字体小:
我在Ubuntu上运行的Chrome中文字体偏小.
在~/.config/google-chrome/Default路径下修改Preferences. 加入了红色显示的两行后,字体就正常了.
"webkit": {
      "webprefs": {
         "default_fixed_font_size": 16,
         "default_font_size": 16,
         "fixed_font_family": "Microsoft YaHei",
         "minimum_font_size": 16,
         "minimum_logical_font_siz": 16,
         "sansserif_font_family": "Microsoft YaHei",
         "serif_font_family": "Microsoft YaHei"
      }
   }

Wednesday, October 21, 2009

[数学]连续两天降雨的概率

问题:(from mitbbs) Weather forecast: 50% chance of rain tomorrow, 75% chance of rain the day after tomorrow. What is the chance of rain for both tomorrow and the day after tomorrow?

Sol: 50%*75%? 这并不是一个严谨的答案.因为明天降雨和后天降雨未必是两个独立事件. 所以应该给出的是一个界

1/4=max{0, P[明天降雨]+ P[后天降雨]-1}< P[明天降雨 and 后天降雨] < min{P[明天降雨], P[后天降雨]}=1/2

Saturday, October 17, 2009

[数学]阿里巴巴开门

问题:阿里巴巴试图潜入山洞。在山洞入口处有一面鼓。鼓的侧面有四个一模一样的小孔,组成正方形的四个顶点。在每个孔的里面各装有一个开关。开关有“上”“下”两种状态。(注意:眼睛看不见!)如果四个开关的状态全都一致,洞门即可打开。现允许将手指伸入任意两个孔,触摸开关以了解其状态,并可随自己的意改变或不改变其状态。但每当这样做了之后,鼓就要飞快地旋转,以至在停转之后无法确认刚才触动了哪些开关。证明:阿里巴巴至多需将手指伸入五次,就可以进入山洞。

Sol: 友情鸣谢X公子&S太后奉献的答案! 撒花~~
将开关状态设为A,B两个状态,并用连续四个字母表示当前鼓上四个开关按照顺时针方向排列的状态。由于每次操作后鼓都会旋转,可以认为每一步只有两种可能的操作:选一条边上两个开关(下称“边”)或者选一条对角线上的两个开关(下称“对角”)

第一步:对角。若不一致则调为一致。此时若门没开,则只可能有两种状态:AAAB或者ABAB。

第二步:对角。分两种情况:
1)手伸入时状态一致,则一起翻转状态。若之前为ABAB状态则门开。若门没开,则之前为AAAB状态,翻后仍然为AAAB状态(A,B对称)。
2)手伸入时状态不一致,则之前为AAAB状态。保持原样。
第二步结束后可知此时状态为AAAB。

第三步:对角。分两种情况:
1)手伸入时状态一致,则翻转其中一个。可知结束时为AABB状态。
2)手伸入时状态不一致,则翻转其中一个。若门没开,则结束时为ABAB状态。

第四步:
(若上一次结束时知道是ABAB状态,跳过这一步,直接进入第五步)
上一次结束时知道是AABB状态,则选边,无论状态如何同时翻转两个开关。分两种情况:
1)手伸入时状态一致,则一起翻转,门开。
2)手伸入时状态不一致,则翻转后变成ABAB状态。

第五步:对角。同时翻转两个开关。由于之前状态为ABAB,则翻转后门开。

[SVN]SVN速查

参考

SVN refence
SVN: How to resolve a conflict

常用命令

1 创建工程myproject1
svnadmin create /home/svn/myproject1
在/home/svn目录底下, 你可以看见每个工程都对应一个目录. 目录里存放的是改工程的相关数据库.每个工程有不同的设置,也有自己独立的commit number.

2 导入目录mydir1进入myproject1
$ svn import -m "New import" /path/to/mydir1 file:///home/svn/myproject1/mydir1
Adding         mydir1/file1
Adding         mydir1/file2
…
Transmitting file data .........
Committed revision 1.

3 检出工程
svn co file:///home/svn/myproject1
或者
svn co svn+ssh://hostname/home/svn/myproject1

4 添加文件或者文件夹
svn add newfile
如果要添加文件夹newdir,但是不包括newdir底下的已有文件(默认是递归添加的)
svn add --depth empty newdir

5 提交更改
svn commit -m "add newfile"

6 查看本地或者网络svn工程目录的情况
svn list http://192.168.61.79/repos/server
svn list -v http://192.168.61.79/repos/server

7 查看服务器端foo.c的内容,保存到当前目录的foo.c.tmp中.
svn cat foo.c > foo.c.tmp
查看foo.c在111版本时的内容
svn cat foo.c -r 111

8 检出某一版本的工程文件
svn co http://192.168.61.79/repos/server -r 4

9 改变当前已存在的工程文件到某个版本
svn update -r 4

10 删除某个文件或者目录
svn delete foo.c

11 查看当前目录或者网络上的svn工程的情况
svn -v status

12 查看工程的更新信息
svn log
svn log http://192.168.61.79/repos/server

13 只更新某个文件(比如foo.c)
svn update foo.c

14 放弃foo.c中的地修改,将其恢复到服务器上的版本
svn revert foo.c

15 消除foo.c的conflict标记
svn revert foo.c

冲突解决

多人使用svn合作的时候,常常发生对文件修改的冲突.比如user1 checkout了foo.c的一个版本后,做了本地修改, 然后commit. 但是user2 在user1 commit之前也checkout 了foo.c.等到user2来commit的时候就会被告知:
svn: Commit failed (details follow):
svn: File or directory 'foo.c' is out of date; try updating
svn: resource out of date; try updating
user2这个时候运行
svn up
Conflict discovered in 'foo.c'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options:
这是因为svn发现了conflict, 需要user2采取措施解决. user2可以采取的动作总共包括
(e)  edit             - change merged file in an editor
(df) diff-full        - show all changes made to merged file
(r)  resolved         - accept merged version of file

(dc) display-conflict - show all conflicts (ignoring merged version)
(mc) mine-conflict    - accept my version for all conflicts (same)
(tc) theirs-conflict  - accept their version for all conflicts (same)

(mf) mine-full        - accept my version of entire file (even non-conflicts)
(tf) theirs-full      - accept their version of entire file (same)

(p)  postpone         - mark the conflict to be resolved later
(l)  launch           - launch external tool to resolve conflict
(s)  show all         - show this list
这里我们的选择包括
  • 如果接受user1的版本而放弃本地修改,选择tc或者tf. 使用tf的话会整个文件一起使用user1的版本,哪怕中间有不冲突的部分.
  • 如果坚持本地修改,选择mc或者mf. mf就整个文件都使用user2的版本
  • 如果想要手动修改解决冲突,就使用e (edit)
  • 如果暂时不做决定,等一会再说, p (postpone)

Thursday, October 15, 2009

[数学]比较两个随机数大小

问题:(zz from mitbbs)在两张纸A,B上分别随机写两个数字,两个数字不相等。所以猜对哪个大的概率为1/2。现在随机翻开A或者B,再猜A或者B上哪个数字大。设计一种策略使得你猜对的概率大于1/2。

答案:不妨设A,B都为[0,1]之间的均匀分布.如果我们在猜之前知道A=x,那么当x<1/2的时候我们以概率(1-x)猜测B大,如果x>1/2我们以概率x猜测A大.采用这种随机策略,我们可以获得准确率:
\int_{x=0}^{1}x^2+(1-x)^2 d x = \frac{2}{3}

Sunday, October 11, 2009

[TeX]TDS: TeX文件目录结构

本篇尚未完成

理论篇

什么是TDS

TeX系统目录结构(TeX Directory Structure)简称 TDS,是 TUG(TeX Users Group)主持制定的标准,目的在于方便TeX的开发者和用户.目前流行的 MiKTeX 套装和 TexLive 套装都支持 TDS.

TEXMF树

TEXMF = TeX + MetaFont
texmf树,由于其不必要的庞大和复杂,而被诟病.但是它也带来了一些好处.比如你可以在不同的树下,分开安装维护不同版本的TeX.
一般我们同时拥有好几棵texmf树,它们有大致相同的组织结构,被委以不同的职责
  1. TEXMFMAIN:主要的树
  2. TEXMFLOCAL: 通常是对TEXMFMAIN的补充,
  3. HOMETEXMF:通常可以用来存放一些非public的(不是所有用户都可以使用的).比如只有你个人拥有许可的包, 或者你正在开发的包.

每棵树的组织结构大致如下:
.sty, .cls or .fd: $TEXMF/tex/<format>/<package>/
.mf:   $TEXMF/fonts/source/<supplier>/<font>/
.tfm:  $TEXMF/fonts/tfm/<supplier>/<font>/
.vf:   $TEXMF/fonts/vf/<supplier>/<font>/
.afm:  $TEXMF/fonts/afm/<supplier>/<font>/
.pfb:  $TEXMF/fonts/type1/<supplier>/<font>/
.ttf:  $TEXMF/fonts/truetype/<supplier>/<font>/
.otf:  $TEXMF/fonts/opentype/<supplier>/<font>/
.pool, .fmt, .base or .mem: $TEXMF/web2c


实战篇

找到你自己的${TEXMFMAIN}
kpsewhich -expand-var='$TEXMFMAIN'
在我的MacTex(基于TeX Live)上结果为/usr/local/texlive/2010/texmf

找到自己的texmf.cnf
kpsewhich texmf.cnf

metapost中使用label, 用gsview 来preview的时候报错: "undefined cmr10"
这是因为mpost 对*.mp 处理后得到的图形是 PS 格式,但是是没有嵌入字体,所以gsview无法显示

参考


[1]LaTeX之TeX系统目录结构
[2]A Directory Structure for TeX Files
[3]一个很不错的TeX笔记blog
[4]TDS in TeX Live

Saturday, October 10, 2009

[数学]The Ballot Problem

问题:在2009步步高音乐手机快乐女生的PK环节里,芒果台设定江小花得A票,喻娘娘得B票.因为芒果台是邪恶的,所以A>B.请问导演能设计出多少种投票方法能够让投票环节里,江小花一直领先?

答案:
\frac{A-B+1}{A+1}{A+B \choose A}
The Ballot Problem
http://webspace.ship.edu/msrenault/ballotproblem/
http://mathworld.wolfram.com/BallotProblem.html