最近写了一个Java ByteCode的解析器,其实感觉ByteCode文件的结果非常简单,所以最后都是自动机的形式就可以了。后面我会用Go完成一个JVM。地址在我的go-jvm项目的classfile部分。贴一个ClassFile的结构
|
|
专注收集代码小精灵
最近写了一个Java ByteCode的解析器,其实感觉ByteCode文件的结果非常简单,所以最后都是自动机的形式就可以了。后面我会用Go完成一个JVM。地址在我的go-jvm项目的classfile部分。贴一个ClassFile的结构
|
|
过程
双射
构建一个F(int) -> int,让绝对值小的数尽量小,绝对值大的数尽量大。
|
|
example
变长编码
代码
|
|
|
|
目的
过程
代码
|
|
这个函数是来找到已经排好序的范围。
|
|
稀疏平常的merge部分。
|
|
可以看到只是一个很小的更改,就能让我们成功降低mergesort最好时间复杂度,真正让mergesort更加实用了。
今天懒癌烦了,灌篇水文吧。
目的
效果
代码
|
|
你是否有留意过很多的电子博弈游戏平台玩家创建账号后评分大多数是1500分(我印象中欢乐斗地主就是这样的。)。最近柯杰和AlphaGo的围棋3番战举世瞩目,柯杰作为人类目前围棋界世界第一的棋手,你是否知道他目前2800多的积分是如何得到呢?《社交网络》中男猪脚马克扎克伯格被女友甩了,气愤的他创建了Facemash,让用户选择他们觉得更漂亮的女生,那么如何在诸多选择中构建一个合理的排名呢?本文将介绍Elo Rating System,它是目前世界大量双人博弈运动的评分系统,比如可以看看这个新闻(https://bbs.hupu.com/13830203.html)。让我们开车吧。
历史
原理
过程
假定有一场比赛,选手A有评分Ra, 选手B有评分Rb。我们认为
mAP(mean Average Precision)
ROC曲线
kappa statistic — 衡量不同人相关性判断的一致性
目的
局限
CHM算法
目的:
实现:
注意通常ix的空间为key的空间的两倍以上。
设计G:
等价于无环图的遍历
所以如果g(i1) = 0, g(i2) 一定等于0,g(i3)一定等于1…
如果上述的dependency在特定ix中会存在环,最后相当于矩阵不可逆,也就无法求出解了。
如何构造出无环的ix呢?
答案就是:F1(str) == sum str[i] + RndTable1[i] mod n。n就是上面中讲到的ix的space。RndTable1是用随机数打的表。F2的结构也类似,只不过是生成的表不同。
居然用随机的话,很明显了,就是RP好无环就手工,有环就再返工重新生成RndTable,
现在需要的就是分析这个凑的过程的运行效率问题。这个就要涉及到f1,f2这两个函数的值域大小,如果越大,越容易凑出一个g函数,但是g函数的参数域就会比较大,存储这个f函数的数据就需要占用更多的空间。相反如果值域越小,在凑的时候就非常容易出现环,需要更长的时间才能凑出这个g函数。
怎么办呢?
我们可以使用3个的h函数来降低形成环的可能,就是这样h(x)=g(h1(x))+g(h2(x))+g(h3(x))modn ,这样虽然推理g函数的过程会复杂一些,但是很有效,有实验分析表明,当h函数的值域大约参数域的1.23倍的时候,这个g函数的创建尝试次数是常数。