摘要: 修改自http://blog.csdn.net/sedgewick/article/details/6774419基本是直译代码的.原理我把图拷过来了.代码总体还是很简单的..import stacklessdef generate(ch): for i in range(2,1000): ch.send(i) def filter(in_ch,out_ch,primer): while True: i = in_ch.receive() if i % primer != 0 : out_ch.s... 阅读全文
posted @ 2012-10-23 09:24 zhuangzhuang1988 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 无聊,写这个东东玩.规则:某个点周围仅有2个点alive,并且这个点本身也是alive状态的,则在下一桢保持.或者点周围有三个alive的点为alive.换成程序代码其实很简单.(pre_state == ALIVE) && (value == 2) || (value == 3)当然了其实真个逻辑都很简单的.如下for(int y = range.rows().begin();y<range.rows().end();y++){ for(int x = range.cols().begin();x<range.cols().end();x++){ ... 阅读全文
posted @ 2012-10-08 09:59 zhuangzhuang1988 阅读(600) 评论(0) 推荐(0) 编辑
摘要: 无聊开始翻看<组合数学>,第一个问题是关于完美覆盖的,解决方法是着色法.在8x8的棋盘中能否用1x2的棋子进行覆盖,不多不少.这个很简单,用脚指头想也该想得出来.但是如果去掉对角的两个还能否完美覆盖呢.解决方法便是使用作色法.对棋盘是用黑白颜色进行作色.如下(黑=1,白=0)$\begin{bmatrix}1 & 0 &1 &0 \\ 0 &1 & 0 &1 \\ 1 & 0 &1 & 0\\ 0 & 1 & 0 &1 \end{bmatrix}$一个1x2的块不论怎么放都得占位一黑一白 阅读全文
posted @ 2012-08-20 13:03 zhuangzhuang1988 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 首选是说下尾递归.如果一个函数呈现下列情况,且中间没有再次递归使用自己,可以认为是一个尾递归.R function(a,b){ ...... return function(c,d);}尾递归可以很轻松的改为一个循环的,如果编译器(解释器)支持的话,可以直接优化的.一般的FP都支持尾递归的.如果像树,Fibonacc这种结构来使用递归的,好像很难转化为尾递归的,这时候使用到的另一种方法是Continuation ,Continuation 可以是看做是一个尾递归的,不过得把 b,d 看做函数它们有着相同的函数签名.看个例子把let rec fib n = match n with ... 阅读全文
posted @ 2012-07-25 17:58 zhuangzhuang1988 阅读(1151) 评论(1) 推荐(1) 编辑
摘要: 总是使用截图别人的公式不好,其实数学公式有个个很NX的东东,MathJax有了这个东东就可以写出漂亮的数学公式,基本这个东东就是js版的Latex.如Fibonacci number$F_n = F_{n-1}+F_{n-2}$$F_0 = 0,F_1 = 1$还有以前写的序列求和$F(x) = x+2 x^2+3 x ^3 + 5 x^4+\cdots$传说中的最漂亮的公式$e^{\pi i} + 1 = 0$当然了这个是刚学的,还有矩阵,极限啥的..还得慢慢学........ 阅读全文
posted @ 2012-07-19 17:05 zhuangzhuang1988 阅读(240) 评论(1) 推荐(0) 编辑
摘要: 在DFT中,可以使用FFT来加速,但是如果选个长度很坑爹如某个素数,那FFT就惨了,直接发挥不了作用,这个时候就可以对原始的数据长度进行扩展,最好是2^x(<--一般书上都这样写`不是一般性`我们假设长度是2^n,每次我都看的很郁闷),但是发现1,2,4,....中间的跨度很大,如果我的序列长度是 2^n+1 那就得选得2^(n+1)对内存来说是巨大的浪费,OpenCV中选择的是2^x*3^y*5^z,这样子选择256+1时可以选择270(3^3*2*5),没必要一下子选择512,来浪费内存.当然在OpenCV中是维护了一张表optimalDFTSizeTab,属于空间换时间的方法,没有 阅读全文
posted @ 2012-07-18 10:53 zhuangzhuang1988 阅读(2859) 评论(1) 推荐(0) 编辑
摘要: 功力不够只能那别人的代码研究,不知怎么的我怎么会翻到这个东东的.首先把代码贴出来把,分析的时候肯定是支离破碎的.// This function splits the input sequence or set into one or more equivalence classes and// returns the vector of labels - 0-based class indexes for each element.// predicate(a,b) returns true if the two sequence elements certainly belong to t 阅读全文
posted @ 2012-07-13 11:08 zhuangzhuang1988 阅读(1270) 评论(0) 推荐(0) 编辑
摘要: Fibonacci 阅读全文
posted @ 2012-07-09 12:41 zhuangzhuang1988 阅读(360) 评论(1) 推荐(0) 编辑
摘要: 前天吃饭时看报纸,偶看到一篇新闻<骗子听音破密码 盗走卡上99800元>.让我想起了以前看的一本书,上面是有介绍的,书名叫<matlab数值计算>,是Matlab它爸写的.其中有很多好玩的,就包括分析电话声音的.书中的代码可以在http://www.mathworks.cn/moler/ncmfilelist.html下载.打开matlab,ncmgui就可以了.其中的touchtone就是关于电话按键的.电话按键的声音主要是从7个基频率得到的.fr = [697 770 852 941];fc = [1209 1336 1477]如果按1就选择频率[697 1209] 阅读全文
posted @ 2012-06-18 13:13 zhuangzhuang1988 阅读(366) 评论(1) 推荐(0) 编辑
摘要: 昨天搞了本数<<GPU高性能编程CUDA实战>>感觉不错花了一个下午+晚上才看了100页,其中有个超简单光线跟踪算法,试了下感觉不错。原理如下图(是那本数上的):其中没有考虑到摄像机模型,基本就是平面上一一个像素点发送平行与Z轴光线看能与哪些点球碰撞,并计算出像素值,计算过程中我重新使用了TBB来加速,CUDA还是很郁闷的,只能用在NVIDIA的显卡特定上.图像部分直接使用的是OpenCV的接口,封装成CPUBitmap,虽然自己重新写下也没有太多的代码(http://www.thecodeway.com/blog/?p=409),可是谁让咱懒呢.代码如下:#inclu 阅读全文
posted @ 2012-05-28 10:24 zhuangzhuang1988 阅读(846) 评论(1) 推荐(1) 编辑