小编K2x*_*2xL的帖子

HyperLogLog算法如何工作?

我最近在闲暇时间学习了不同的算法,而我遇到的似乎非常有趣的算法叫做HyperLogLog算法 - 它可以估算列表中有多少独特的项目.

这对我来说特别有趣,因为它让我回到了我的MySQL时代,当我看到"基数"值时(我总是假设它直到最近计算得不是估计的).

所以我知道如何在O(n)中编写一个算法来计算数组中有多少个唯一项.我用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;
}
Run Code Online (Sandbox Code Playgroud)

但问题是我的算法,而O(n),使用了大量的内存(存储值Table).

我一直在阅读这篇论文,关于如何在O(n)时间内使用最少的内存来计算列表中的重复项.

它解释了通过散列和计数比特或某事物,可以在一定概率内(假设列表均匀分布)估计列表中的唯一项目的数量.

我读过这篇论文,但我似乎无法理解它.有人能给出更多非专业人士的解释吗?我知道什么是哈希,但我不明白它们如何在这个HyperLogLog算法中使用.

database algorithm math data-structures hyperloglog

162
推荐指数
3
解决办法
6万
查看次数

什么是git的合并策略?

可能重复:
您何时会使用不同的git合并策略?

当git合并我正在处理的文件时,我看到:

Merge made by the 'recursive' strategy
Run Code Online (Sandbox Code Playgroud)

什么是递归策略?还有哪些其他策略(如果有的话)?使用一个优于另一个会有什么好处?不同的策略有不同的表现吗?或者两种不同的策略会导致不同的合并结果?

git

54
推荐指数
1
解决办法
4万
查看次数

检查string是否为int golang

如何在Golang中检查字符串值是否为整数?

就像是

v := "4"
if isInt(v) {
  fmt.Println("We have an int, we can safely cast this with strconv")
}
Run Code Online (Sandbox Code Playgroud)

注意:我知道strconv.Atoi返回错误,但还有其他功能吗?

的问题strconv.Atoi是,它会返回7"a7"

go

53
推荐指数
5
解决办法
5万
查看次数

为什么闰秒会导致问题?

所以此刻(但很可能不会很久)Reddit,Meetup,Fark,LinkedIn,Yelp,4Chan都失败了.Netflix显然也出现了一段时间.

根据Reddit的推文,他们在2012年6月30日之前遇到了与闰秒有关的问题:https://twitter.com/redditstatus/status/219244389044731904

"我们在太平洋标准时间下午5点有一些与闰秒有关的Java/Cassandra问题.我们正在尽快恢复服务."

显然,影响其他网站的问题都与闰秒问题有关.

在阅读了关于闰秒的维基百科文章之后,我我明白闰秒是什么......但是我不知道如果不考虑闰秒会发生什么样的怪异行为呢?作为程序员,我们应该如何在编码和配置服务器时为闰秒做准备?

我的意思是它只有一秒钟不是吗?

time datetime operating-system

36
推荐指数
1
解决办法
1万
查看次数

将触摸事件从Javascript翻译为jQuery

我在用

window.addEventListener("touchstart", function(ev){
    console.log(ev.touches); // good
});
Run Code Online (Sandbox Code Playgroud)

我怎样才能将其转换为jQuery?我试过了:

$(window).bind("touchstart",function(ev){
    console.log(ev.touches); // says ev.touches is undefined
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript iphone mobile jquery android

35
推荐指数
2
解决办法
13万
查看次数

消极的前瞻去正则表达式

我试图在Go中使用负向前瞻:

以下正则表达式: BBB(((?!BBB).)*)EEE

http://rubular.com/r/Zw1vopp1MF

但是在Go中我得到:

error parsing regexp: invalid or unsupported Perl syntax: `(?!`
Run Code Online (Sandbox Code Playgroud)

还有其他选择吗?

regex go

27
推荐指数
3
解决办法
2万
查看次数

隐藏System.out.print类的调用

我正在使用java库(jar文件).该文件的作者放入了一堆System.out.printSystem.out.printlns.有没有办法隐藏特定对象的这些消息?

*编辑:看起来jar文件似乎创建了一堆线程,每个线程都有自己的System.out.println ...

java

19
推荐指数
2
解决办法
1万
查看次数

流大JSON

我有一个存储在文件中的大量JSON数组("file.json")我需要遍历数组并对每个元素执行一些操作.

err = json.Unmarshal(dat, &all_data)
Run Code Online (Sandbox Code Playgroud)

导致内存不足 - 我猜是因为它首先将所有内容加载到内存中.

有没有办法按元素流式传输JSON元素?

go

17
推荐指数
2
解决办法
1万
查看次数

动态地将顶点添加到Three.js中的一行

我想出了如何在threejs中绘制一条线,问题是我需要动态地将顶点添加到线上.当我动态地向行添加顶点时,场景不会更新.

我试过了geometry.verticesNeedUpdate = true,这似乎不起作用.

three.js

12
推荐指数
2
解决办法
1万
查看次数

如何根据数组中的值选择JQ中的项目

我有一个像这样的行的文件:

{"items":["blue","green"]}
{"items":["yellow","green"]}
{"items":["blue","pink"]}
Run Code Online (Sandbox Code Playgroud)

如何使用jq选择并仅显示其"items"数组中具有"blue"的JSON值?

所以输出将是:

{"items":["blue","green"]}
{"items":["blue","pink"]}
Run Code Online (Sandbox Code Playgroud)

json jq

12
推荐指数
4
解决办法
2万
查看次数