wOOL’s Blog

Lethal Sweety . Sunny Yawn . Deicidal Jujube . …

Archive for 十二月 2008

Stirling, Wallis, Catalan, Copula

without comments

Sometime I should update this post !

Written by wOOL

十二月 11, 2008 at 2:58 下午

Posted in Calvados

Tagged with , , ,

啊哈,逃OB之后。。。

without comments

Er…
上次在OB课上走神,推导出来那个求曲线长度的弧微分公式
这次OB直接逃掉了
(后来悲剧的发现老师亲自检查考勤,然后悲剧掉了)
换来的成果是一个把.lrc的歌词文件转换为.srt的字幕的Python脚本
性感的运用了可爱的2.6之后的新特性,可以在datetime.strptime()中使用%f
然后顺便安装了一个Python3以及在Google Code上开了一个新的Project
http://code.google.com/p/pylrc2srt/
之所以把那么一个简单的脚本放上去,是因为一开始我打算直接找一个现成的
后来发现*nix下没有,而一个C++的代码还编译不了
最最忧郁的是居然Google Code有一个项目了,但是除了svn中的一些C#代码,一个可以用的Download都没
于是。。。

其实这个行为本身并不怎么靠谱
因为于.srt不同,.lrc文件并没有保存一句话结尾时间这个数据
所以只能设定一个间隔,读取开始时间和下一句的开始时间,并把下一句的开始时间减去这个间隔作为结尾时间

./lrc2srt.py filename interval


#!/usr/bin/env python3

import sys,re
from datetime import datetime

p = re.compile("[0-9]+")
filename = sys.argv[1]
interval = str(sys.argv[2])

lrc = open(filename)

listtime = []
listlyrics = []

for line in lrc.readlines():
if p.match(line.split(":")[0].replace("[","")):
listtime.append("00:" + line.split("]")[0].replace("[","")+"0")
listlyrics.append(line.split("]")[1])

#read file and delete empty&useless lines

o=""
i=0

while i " +\
"0" + (str(datetime.strptime(listtime[i+1],"%H:%M:%S.%f")-datetime.strptime(interval,"%f"))).replace("000","").replace(".",",")+\
"\n"+listlyrics[i]+\
"\n"
i=i+1

o = o + str(i+1) + "\n" + listtime[-1].replace(".",",")+ " --> " + "\n" + listlyrics[-1] + "\n"
srt = open(filename.replace("lrc","srt"),"w")
srt.write(o)

Written by wOOL

十二月 10, 2008 at 9:46 下午

Posted in Calvados

Tagged with , , , ,

定积分来求一段弧线的长度

without comments

最近埋头看概率论基础(再不嘲笑老美的数学了,哭,他们的基础我看不懂)

看发看发就看到微积分那里去了(还好不是线性代数,汗一个),毕竟很多推导需要微积分,而且还是很恶心的那种,二重积分换元之类的都用上了

想当年xxxx的时候,微积分根本就是无视掉的呀

总之由于浸再微积分里面就自然想起一个往事

在那遥远的高二,一个猴子状的物体问题我:怎么用积分求一段曲线的长

当时学的定积分就是在学着求面积,所以当时思路是很猪的,想求出两端曲线之间的面积再除以两端曲线的间隔

好像最终没有推导出来,而那只猴子也没有告诉我答案(貌似他也没想出来的说),因为无关乎xx考试,就搁着了

现在想来一个很明显的错误是这样求的的根本不是一个边x边形式的面积的东西

也就是说2段间隔为1个单位的曲线之间夹的面积并不等于把这2个曲线“拉直”之后的宽为1的矩形的面积

这一点可以通过2个半○的特例来发现

今天在OB课上又猛然想起这个问题,果然是OB过于无聊才会想到这种问题D

所谓微分\frac{dy}{dx} 可以体现在这样的一个图中

c

它就是那条黑色切线的斜率,那么在由2条红色的边和1条蓝色的边组成的三角形中

显然那条蓝色边的长度等于\sqrt{(\mathrm{d}x)^2+(\mathrm{d}y)^2}

而当dx足够小的时候,这条蓝色的斜边应该近似等于从x到x+\mathrm{d}x的曲线的长度

结合对积分的理解,其本质就是一系列乘积的求和的形式(确切点是一个极限形式),例如对一个一元函数的积分,既是其函数值 乘以 一个微小的dx

\sqrt{(\mathrm{d}x)^2+(\mathrm{d}y)^2} = \sqrt{1+(\frac{\mathrm{d}y}{\mathrm{d}x})^2}\,\mathrm{d}x

既是\sqrt{1+(y')^2}\,\mathrm{d}x

对这一系列的近似弧线长度的“小斜边”们求和(假设曲线是y 区间是[a,b])

\int_a^b \sqrt{1+(y')^2}\,\mathrm{d}x

我们得到的就是y这个曲线在[a,b]上的那段的长度啦

然后呢,我当然去Google一下是不是这样,结果Bingo,咔咔,这里的深入一些的内容就是所谓的弧微分的东东

Over

以一个笑话结尾:

A:你明天对那些社区大学的学生们讲微积分的话,只讲一些比较基础的就可以了
B:了解
翌日
B:同学们,今天我们来讲一下定积分
S:(莫名其妙状)
B:哦,如果这个概念难以理解的话,你们可以把它看到一个黎曼和的极限
S:(倒)

好吧,我承认我是为了测试WordPress输入TeX公式的效果才凑这篇文章的,结果发现如果代码内容很短的话,比如是\mathrm{d}x这样的是不会被转的,大概是为节约资源吧

一个TeX公式助手:http://www.linuxgem.org/2008/8/28/KLatexFormula.5229.html

一篇不错的教程:http://lyanry.is-programmer.com/posts/442.html

Written by wOOL

十二月 2, 2008 at 9:12 下午

Posted in Calvados

Tagged with ,