我已经在库中有64位散列函数(C编码),但我只需要48位.我需要将64位散列值减少到48位值,但它必须以安全的方式才能最小化冲突.
散列函数是一个非常好的64位散列函数.它已经通过SMHasher("DieHarder"哈希测试)进行了测试,并且证明比Murmur2更好.根据我的同事们说,在lib中实现64位散列的算法是xxHash,用SMHasher测试并得到Q.Score为10!对于那些想要看到它的人,xxHash的源代码可以在github.com上找到:github.com/Cyan4973/xxHash/releases/latest.
基本思想是使64位散列值(或其中一部分)中的所有位对产生的48位散列值产生影响.有没有办法做到这一点?
[编辑后期]:
所以我实现了自己的48位(准)-UUID生成器.
请在此处查看完整的工作解决方案(包括源代码):https://stackoverflow.com/a/47895889/4731718.
我在 Windows 7 上使用 Qt5。
在我当前的项目中,我打开一个二进制文件,以便用来自 TCP 套接字的数据填充它。通常,在填充文件后,我关闭它,另一个应用程序将读取此二进制文件以进行进一步处理。
好吧,问题是:写入操作大约需要 4-5 秒(甚至更多)所以我需要找到一种方法来防止其他应用程序从二进制文件中读取,直到文件完全填充......
下面是代码(但我认为它不会有太大帮助):
int error = 0;
unsigned long dataLength;
char dataBuffer[1500];
QFile localFile("datafile.bin");
//
localFile.open(QIODevice::WriteOnly);
while(error == 0)
{
error = readSocket(dataBuffer, &dataLength);
if(error == 0)
{
localFile.write(dataBuffer, dataLength);
}
else
{
error = -1;
}
}
localFile.close();
Run Code Online (Sandbox Code Playgroud)
我正在考虑使用一个临时文件并在写操作完成后重命名它。
但也许还有另一个更好/更聪明的想法?某种“用于阅读的锁定文件”也许......?
我是 R 新手,目前正在从事一项涉及网络抓取的作业。
我应该阅读此网页中的所有句子:https://www.cs.columbia.edu/~hgs/audio/harvard.html
这是我当前的代码:
library(xml2)
library(rvest)
url <- 'https://www.cs.columbia.edu/~hgs/audio/harvard.html'
read_html(url)
sentences <- url %>%
html_nodes("li") %>%
html_text()
Run Code Online (Sandbox Code Playgroud)
每次我运行它时,我都会收到此错误:
UseMethod("xml_find_all") 中的错误:没有适用于“xml_find_all”的方法应用于类“character”的对象
你能帮我么?我不明白我做错了什么。
给定从 CSV 解析的一些数组,如下所示(不用担心解析部分,只需将此数组视为起点)。
说:
['name,age,city', 'tom,12,new york','john, 10, los angeles']
这样第一个索引是列名,将其转换为表的最佳方法是什么。我正在考虑使用 numpy 和 pandas 来创建数据框,但是最有效的内存/时间转换方法是什么?然后我计划做一些数据分析并创建一些新功能。标准 python 库中是否有我可以使用的东西,或者 pandas 是解决这个问题的最佳方法?如果我只使用内置函数,我会怎么做?最后,我需要将这些功能组合回数组的原始形式。