2016-08-12 ruki
tbox对于数据文件的解析提供了完善的支持,可以对各种二进制数据,文件数据流,网络数据流等进行各种解析操作 并且提供了一整套字节解析、比特位解析的接口,来支持各种流模式: stream 通用数据流,提供对流式数据的读写和解析,支持多层流嵌套以及各种协议(http, socket, file, data ...) 对于如何使用stream,这里暂时不详细介绍了,之后会单独重点介绍下,这里主要是为了描述,如何使用stream来处理字节数据的解析 例如,我要从数据流中,读取一个大端的16bits数值,很简单,只要: c tb_uint16_t value; if (tb_stream_bread_u16_be(stream, 继续阅读 »
2016-06-03 Lu Huang
本节实现的是在图片上模拟机上椒盐噪声,主要过程如下。 打开一个图片 产生随机坐标 加上“椒盐” 显示加噪图片 实现过程 引用 这里我们需要引用cv2和numpy,cv2不言而喻,而NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 python import cv2 import numpy 打开图片 cv2库里的函数imread()用来读取图片,imshow()可用于显示图片,此外imwrite可以用来写图片,即保存图片。这里把显示图片的窗口指定为“Image”。 python img = cv2.imread("test.png") 加 继续阅读 »
2016-06-01 Lu Huang
Python作为一门极其易学的语言,在科学计算等领域存在较大的应用,同样,著名的OpenCV库也发布了支持Python的库,本节主不再介绍如何在Ubuntu上配置Python OpenCV,有需要的同学可以参考这里。 本节将利用Python OpenCV做一个简单的测试,即 打开一个图片并显示 创建一个空图并显示 将彩色图像转成灰度图像并显示 实现过程 引用 这里我们需要引用cv2和numpy,cv2不言而喻,而NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,这里在引用时把numpy重命名为np。 python import cv2 import 继续阅读 »
2014-11-02 Xie Jingyi
介绍 所谓树状数组,就是将线性的数组预处理成树状的结构以降低时间复杂度。先来看一幅经典的图: 其中的a数组为原生数组,c数组为辅助数组,计算方式为: $$c_1=a_1——{(1)}{10}={(1)}_2$$ $$c_2=a_2+c_1——{(2)}{10}={(10)}_2$$ $$\ldots$$ 不难发现,c[k]存储的实际上是从k开始向前数k的二进制表示中右边第一个1所代表的数字个元素的和。这样写的好处便是可以利用位运算轻松计算sum。上代码。 Code var n, i: longint; a, c: array [1..10000] of longint; //计算x最右边的1所代表的数字。 继续阅读 »
2017-11-30 Vaniot
排序的定义及分类 排序的目标:将无序输入的数据按有序排列 计算的时间复杂度(最差、平均、和最好性能),依据列表(list)的大小(n)。一般而言,好的性能是O(n 3log n),且坏的性能是O(n2)。对于一个排序理想的性能是O(n)。仅使用一个抽象关键比较运算的排序算法总平均上总是至少需要O(n log n)。 内存使用量(以及其他电脑资源的使用) 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。 依据排序的方法:插入、交换、选择、合并等等。 more 分类 1.按稳定性(在待排序的 继续阅读 »
2014-02-22 W.Y.
有时候会查找 JSHint 某些选项的具体含义,针对项目需求开启或关闭某些选项,所以从这里转载了 JSHint 选项列表的中文翻译,供不时之需。 这是 JSHint 所有配置选项的完整列表。如果发现遗漏了某些信息,你可以给作者提 issues 或者发邮件。 more table thead tr th:first-child{width:100px;} Enforcing 选项 当下列选项设置为 true 时,JSHint 会基于这些选项对代码产生更多的警告信息。 bitwise 这个选项禁止在 JavaScript 中使用位运算符,如 ^ (XOR),| (OR)。在 JavaScript 中位运算很少见,& 与 && 继续阅读 »
2014-11-01 Xie Jingyi
在学习数论时我们都知道:只用2的幂次可以组合出所有的正整数。这便是二进制的魅力——状态简单而又变化万千。 引子 实际算法中,常常有一些线性的但数据量特别大的问题,如区间求和、求最小值等。很多时候,为了把时间复杂度从$O(n^2)$甚至更高的地方降下来,我们需要对数据进行一些预处理,以提高计算的速度。在这其中,有很大一部分是来自二进制运算特点的启发。 目录 树状数组 RMQ LCA&树上倍增 继续阅读 »
2014-10-25 Xie Jingyi
题目大意 输入a, b, k, n, m,计算$a^n\times b^m\times C_k^n$模10007的余数。 分析 对于幂数的计算并不难,关键在于对组合数$C_n^k$的计算。 通常来说,组合数的计算一般是这样的:$$C_n^k=\frac{n}{k}\times\frac{n-1}{k-1}\times\ldots\times\frac{n-k+1}{1}$$ 这对于单精度的计算来说是十分快捷的,但如果要对结果取模的话就不起作用了——取模运算对于除法不成立。因此只能另辟蹊径了。 注意到加减乘法对于取模都是成立的,从而想到:能否将组合数转化成加法? 自然而然,想到了组合恒等式:$$C_n^k=C_{n-1}^{k} 继续阅读 »
2013-05-19 Robert Zhang
分析:比较简单的方案是:依次用1,11,111,1111,……来尝试,直到某个数与输入的余数为0为止。当然,111……1可能非常大(实际上可达数千位之巨,比如8141对应的111……1有3486位),为此我们要使用自制的“大数”来运算。据此有方案一:more 继续阅读 »
2017-05-24 Oliver Wang
最近开始接触 vue, 写了一个算是前端小论坛的公司内部项目, 算是一个知识库, 可添加一些常见的问题供别人查阅~ 现在做个总结吧, 项目写完一个多星期, 现在想想差不多都忘记了~ 真是老了~ 生命周期 其中 created 和 mounted 的顺序要确定好~ 比较重要的就像下面这三个吧, 其他的像是 updated, beforeUpdate 我几乎没有用过, 暂时不说~ created 实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。 mounted el 继续阅读 »