我在哪里可以findLogLogalgorithm的有效实现? 试图自己实现,但我的草案实施产生了奇怪的结果。 这里是: function LogLog(max_error, max_count) { function log2(x) { return Math.log(x) / Math.LN2; } var m = 1.30 / max_error; var k = Math.ceil(log2(m * m)); m = Math.pow(2, k); var k_comp = 32 – k; var l = log2(log2(max_count / m)); if (isNaN(l)) l = 1; else l = Math.ceil(l); var l_mask = […]
我最近在业余时间已经学习了不同的algorithm,而我遇到的一个看起来非常有趣的algorithm叫做HyperLogLogalgorithm – 它估计列表中有多less独特的项目。 这对我来说特别有意思,因为当我看到“基数”值(直到最近我一直认为它是不计算的)时,才使我回到了MySQL日子。 所以我知道如何在O ( n )中编写一个algorithm来计算一个数组中有多less个独特的项目。 我用JavaScript写了这个: function countUniqueAlgo1(arr) { var Table = {}; var numUnique = 0; var numDataPoints = arr.length; for (var j = 0; j < numDataPoints; j++) { var val = arr[j]; if (Table[val] != null) { continue; } Table[val] = 1; numUnique++; } return numUnique; } 但问题是,我的algorithm,而O ( […]