Changkun Ou

Changkun Ou欧长坤

Science and art, life in between.科学与艺术,生活在其间。

Bridging HCI, AI, and systems programming. Building intelligent human-in-the-loop optimization systems. Informed by psychology, sociology, cognitive science, and philosophy.连接人机交互、AI 与系统编程。构建智能的人在环优化系统。融合心理学、社会学、认知科学与哲学。

Fourier变换应用小记

大整数问题一直很头疼,采用乘法原理的结果复杂度为$O(n^{2})$,最近看傅里叶变换有尝试用傅里叶变换加以改进。 设 $$a=(a_{N-1}a_{N-2}...a_{1}a_{0})_{10}=a_{N-1}10^{N-1}+...+a_{0}10^{0}$$ $$b=(b_{N-1}b_{N-2}...b_{1}b_{0})_{10}=b_{N-1}10^{N-1}+...+b_{0}10^{0}$$ 两个式子的乘积 $$ c =

Read More阅读更多 →

模版链队实现

队列作为允许在前段删除和后端插入得线性表,和栈类似,是一种操作受限制得线性。进行插入操作的端称之为队尾,进行删除操作的端称之为队头。队列中没有元素时,称之为空队列。尽管操作受到限制,但是仍然具有使用价值,如可以利用队列结构编写消息队列处理消息,利用队列结构编写内存池时可以将可用内存区块加入一个队列中等待使用,等等。 这次实现的模版链队本质上仍是链表,这次的队列没有首节点,队列中全部元素均为队列中的成员。代码中注释了一个迭代器,是测试代码时候写的。 p.s.可以考虑重载[]来实现队列中的数据访问。。当然这是后话了。。

Read More阅读更多 →

模版链栈实现

栈只具备入栈和出栈的性质,实现起来较为简单,其本质还是链表,只不过限制了任意节点的访问权限,因此栈不具备迭代器的功能。代码中注释了一个迭代器,是测试代码时写的,迭代效果略有Bug,访问数据会多访问到一个,但不影响栈本身的功能,无视就好~ p.s. 可以考虑重载[]来实现栈中的数据访问。。当然这是后话了。。

Read More阅读更多 →

从圆锥体积谈起

本文希望通过下面这个简单易懂的例子来阐述数学家们为何要将流形理论定义的晦涩以及流形背后的深刻含义,文中一些关键性的概念附上了wikipedia链接,方便快速回忆起它们。 学过定积分的同志们都知道,定积分可以求旋转体的体积,比如圆锥。 学过多元积分的同志们也都知道,求圆锥体积的时候可以用截面圆面积沿圆锥高度变化函数的积分。 到底什么是体积,为什么这两种求法的结果总是相同的?这里博主就介绍一下一般形式对体积计算。 首先,我们需要理解流形的概念。流形是可以类比到$n$维欧式空间的拓扑结构,流形上的每一个点都可以映射到欧式空间中。 我们通常意义上的建立空间直角坐标系,就是将一个几何体一一映射(双射)到了一个三维的欧式空间。把问题转化到欧式空间中是因为欧式空间有很多优良的性质,具体就不阐述了,可以在这个链接中查到相关知识,如果觉得不过瘾可以切换到英文版查看更为详尽的描述。

Read More阅读更多 →

《乔布斯》观后感

美国立国至今二百余年,The chief business of america is business,商业繁荣至今,有种东西居功至伟,也就是所谓的“Entrepreneurship”。影片中的乔布斯偏激、疯狂、固执、冷静、不顾一切、毅然决然。他专注于自己的事业,对自己努力的一切有着近乎宗教式的狂热,他执着于冒险,疯狂开拓,无所畏惧。乔布斯如今已经成了一个象征,这个改变了世界的科技天才,和某种意义上的精神领袖,因为乔布斯设计理念的哲学和美学已经深深影响了一批人,这种影响小到审美品位大到创意理念和生活哲学,这种影响是深远的,也正是因为乔布斯,设计变得无比重要。

Read More阅读更多 →

反转单链表

今天听说反转单链表,于是博主就自己想了想。 顾名思义,反转单链表,就是让一个单链表反向。 反转一个单链表,最容易想到的思路就是: 方法一 牺牲空间。 此方法没什么可说的,直接创建一个新的链表,倒序将上一个链表的各个节点拷贝到新链表中,并释放原链表。值得注意的是,如果直接拷贝各个节点,显然复杂度较高,因为拷贝最后一个节点时需要先指向最后一个节点,而指向最后一个节点是需要话时间的。因此可以先开辟一个lenth()长度的数组,将各节点先存入数组中,再使用反序索引来创建新的反转单链表。 接下来容易想到的方法则是使用三个节点指针来进行操作。

Read More阅读更多 →

通信信号与正交向量之间的关系

设 $$ P=\{ \{ x_{k} \} = (...,x_{-2},x_{-1},x_{0},x_{1},...):x_{i}\in R\} $$ 表示双向无穷实数列集合,按分量自然的定义$P$中的向量加法与数乘,则$V$构成一个无穷维为实线性空间。在实际中我们一般称

Read More阅读更多 →

谈人与事

这几天到了申请奖学金的日子,才逐步意识到一个人什么都不懂完全靠厚脸皮也可以混到不错的位置。当然这句话里面并没有暗含说我懂得如何如何多,这点不能误解。其实总结起来就是一句话,论人际交往的重要性。

Read More阅读更多 →

基于图像信号分析的碎纸片的拼接复原

Created by 欧 长坤 & 郭 瞾阳 & 黄 沐 on 13-9-16. Copyright (c) 2013年 欧 长坤 & 郭 瞾阳 & 黄 沐. All rights reserved. 摘 要 碎片化程度不同的碎纸片,其复原难度各有不同。好的复原筛选算法有效的帮助人们减少复原的时间,提高复原的效率。 针对三个问题中复原碎纸片的难度递进关系,本文同样建立了具备递进关系的三个数学模型,并给出其算法。分别为信号相似性算法、边界积分匹配算法和行距匹配算法。针对复原文件的特性,本文将碎片的复原过程分划为三个独立的代码模块,分别为整行筛选模块、整行拼接模块和各行拼接模块。每个模块适当组合使用三个算法,达到精准筛选与匹配。 在问题一中,由于附件1和附件2所提供的待复原图片数量较少,因此直接采用信号相似性分析,来拼接待复原的图片,拼接结果显示,拼接的匹配率达到100%,无需人工干预。 在问题二中,随着碎片数的增加,为了减小拼接问题的复杂度,先筛选出整行碎片,则将该问题转化为问题一进行研究。而整行筛选的方式,中文碎片和英文碎片的处理方式上有细微差异。对于中文碎片而言,采用了行距分析算法等,半自动化的完成了整块碎片文件的拼接,其间人工干预3次。对于英文碎片而言,实际拼接过程中直接使用信号相似性算法来筛选整行更为有效,匹配率为84.21%,完成整块209张图像碎片拼接只需人工干预33次。 对于更复杂的双面碎片问题三而言,综合运用了三个模块进行全面筛选匹配,将匹配率优化为63.31%,完成整个518张图像碎片的拼接复原需要人工干预95次。 关键词: 一维信号, 相似性分析, 边际积分, 行距提取, OpenCV

Read More阅读更多 →

从 Windows 到 Macintosh

自从大一第一个学期末的时候买了iPhone 5,逐步对苹果这个公司有了不同的看法。之前对苹果整个公司的看法,都停留在最初级的道听途说。在为期几个月的iPhone使用中发现,苹果的产品确实做得好。因此第二个学期就开始筹划购买MacBook相关事宜了。 购买MacBook之前一直都很担心是否在Windows上面的我必须的生产工具在Macintosh上是否也有,直到这个学期拿下MacBook后才解除了这个疑惑。Macintosh确实是最先进的操作系统,没有之一。

Read More阅读更多 →