μMatrix介绍及试用

μMatrix是基于矩阵的浏览器过滤插件,不像Ad Block (Plus)和μBlock一样基于列表,因此不能订阅Easy China List之类的列表。但是μMatrix有它另外的列表可以订阅。

μMatrix采用的矩阵有三个维度:来源网址目标网址请求类型

左上角深蓝色的是来源网址。如果你去github.com,点一下左上角,会列出*和github.com,让你设置来源网址为*(任何来源)的矩阵和来源网址为github.com的矩阵。图1显示的是来源网址为github.com的矩阵。

  • 深红色是禁止,淡红色是因继承自上级而禁止(本级没有设置)。
  • 深绿色是允许,[……]

    继续阅读

英文翻译

可不可以不、能不能不?

Is it OK if …?

例:我明天可不可以不来上班?可以啊。
Is it OK if I don’t come to work tomorrow? Yes, it’s OK.

不能吗?

not allowd to
required not to

明天我不能来吗?
Am I not allowed to come?
Am I required not to come?
明天我能不来吗?
Is it OK if I don’t come tomorrow?

不一定只有、不一定只能、不是只能

not necessarily[……]

继续阅读

Commit Charge是什么意思?

Process Explorer显示整个系统的Commit Charge,如图1。
1

图1

Windows 8任务管理器也显示整个系统的Commit Charge,命名为已提交(内存)
2

Windows资源管理器显示每个程序的Commit Charge,命名为提交(内存)

3

已提交内存(Commit Charge)的意思是应用程序向操作系统申请使用,但可能还未完全使用的内存。

可以这么理解,比如一个ArrayList,预计填充1000个元素,所以初始化容量为1000。但在for循环的某一时刻,只添加了500个元素,所以已提交内存是1000,实际使用的内存[……]

继续阅读

Windows Phone应用程序如何实现通讯?

我有一个Windows Phone(WP)应用程序,用Silverlight编写。该程序如何向Windows桌面应用程序发送数据?

有人[1]建议Windows桌面应用程序内建一个HTTP服务器,WP程序用HTTP请求的方式发送和取得数据。

这样的操作方式不是面向对象的。我们可以考虑使用WCF。在Silverlight(Windows Phone)里,WCF只能使用BasicHttpBinding,仅支持异步调用,即添加特性[OperationContract(AsyncPattern = true)]

WP程序和Windows桌面程序如果要共享协议接口项目[……]

继续阅读

Manacher最长回文算法

本文将一步一步构造Manacher算法,心急的一定看不懂!请先练习下面的习题。

探索最长回文串性质

题1:已知字符串以center为中心对称,求完整的字符串。

abcd???
   |
center

abcdcba
   |
center

题2:接上题,abcdcba后面还有一些字符,以center2为中心,最大对称半径[1]半径大于等于1。为7,求完整的字符串。

1

根据center2的对称性质,可以知道字符串为

abcdcba???abcdcb??

又根据center2最大对称半径为7,而不是8[……]

继续阅读

   [ + ]

1. 半径大于等于1。

证明组合数(二项式系数)是整数

先给出组合数(二项式系数)性质

即二项式系数是另两个二项式系数之和。

Mathematica也知道此性质:

FullSimplify[Binomial[n + 1, k] == Binomial[n, k] + Binomial[n, k – 1]]True

这样就可以直接用数学归纳法证明。但是不知道上述性质时也可以证明。

兹证明如下:

令,设命题P(n)为,为整数。

提示:。

证明:

当n=1时,m可取0或1。

  • 当m=0,。命题成立。
  • 当m=1,。命题成立。

假设n=k时,P(k)成立,则均为整数。

当[……]

继续阅读

破解微信禁止模拟器登录

经研究,XPrivacy能够破解微信禁止模拟器登录。请查找下文大标题。

我用Genymotion登录微信,原来微信版本是5.2.1,发布于2014年3月24日[1]。腾讯于2014年12月屏蔽模拟器登录,我的5.2.1版本也受到影响。

判断运行环境是否为模拟器这一步骤,要么在微信客户端执行,要么在服务器端执行。如果在服务器端执行,客户端势必收集运行环境参数并且发送给服务器。

所以有两种可能:

  1. 早在5.2.1版本,微信已经收集运行环境参数了,并发送给服务器。2014年12月开始,服务器收到运行环境参数后,会判断是否为模拟器。如果是模拟器,就通过“微信[……]

    继续阅读

求两个集合/数组的交集

A = [9, 1, 4, 2, 5] k个整数
B = [3, 1, 8, 7, 6, 5] n个整数
Intersection => [1, 5]

复杂度理论证明

问题复杂度下限

设A为较小的列表,B为较大的列表,则k<n。

对于A中的每个元素都要查看B中是否有相同元素。查看B中是否有相同元素的时间复杂度至少为O(1),A需要迭代每个元素,所以问题复杂度时间下限为O(k)。

根据复杂度关系,空间复杂度小于等于时间复杂度[1][1]证明极为简单:你要多少空间就得花费多少时间来获得它。,所以该问题的空间复杂度下限小于O(k)——[……]

继续阅读

   [ + ]

1. 证明极为简单:你要多少空间就得花费多少时间来获得它。

检查链表是否有环,带数学推导

推导

给定下列列表(4指回2),若有快慢两个指针,慢指针每次前进一步,快指针每次前进两步,求两指针何处相遇?

1-2-3-4
  |___|

解:

设两指针前进n次。n必定大于等于1。

Reduce[Mod[n – 1, 3] == Mod[2n – 1, 3], n, Integers]

然后寻找满足上述条件(Out[1])的最小的n。

FindMinimum[{3c, 3c > 1, Element[c, Integers]}, c]{3., {c -> 1}}

所以n=3,即slow、fast两指针在4处相遇。

一般化:给定一个单链表,[……]

继续阅读