Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是等价的C/C++;python中的loselose算法_Python_C++_C_Algorithm_Hash - Fatal编程技术网

什么是等价的C/C++;python中的loselose算法

什么是等价的C/C++;python中的loselose算法,python,c++,c,algorithm,hash,Python,C++,C,Algorithm,Hash,由于一个特殊的原因,我试图找到(并非穷尽)最差的散列算法。我在分析中找到了一些,并针对Loselose算法。用C(我认为)表示算法如下: 我不是程序员,C++中的C(或C++)是在扼杀我。你能给我一个帮助,并提供python中的等价物吗 注:对于那些问“为什么是最糟糕的散列?”的人,我打算创建set2,一个与原始set1“等价”的集合,但由于高算法散列冲突,元素减少了。我不需要回到原来的场景1。我只需要知道在SET2中是否存在散列。< /P> < P>您提供的C++代码简单地对给定字符串的每个字

由于一个特殊的原因,我试图找到(并非穷尽)最差的散列算法。我在分析中找到了一些,并针对Loselose算法。用C(我认为)表示算法如下:

我不是程序员,C++中的C(或C++)是在扼杀我。你能给我一个帮助,并提供python中的等价物吗


注:对于那些问“为什么是最糟糕的散列?”的人,我打算创建set2,一个与原始set1“等价”的集合,但由于高算法散列冲突,元素减少了。我不需要回到原来的场景1。我只需要知道在SET2中是否存在散列。< /P> < P>您提供的C++代码简单地对给定字符串的每个字符进行迭代,并将其ASCII值添加到变量<代码> Hash < /C>中,并返回<代码>散列< /C> > /< 通过这样做,我们可以在Python 2.7中实现同样的效果:

def custom_hash(s):
  hsh = 0
  for c in s: hsh += ord(c)
  return hsh
或者,你也可以试着做一个Pythonic,在同一行中做同样的事情:)


while(c=*str++)
相当于
while((c=*str++)!=0)
。这不是翻译服务。FWIW,我认为最接近Python的等价物应该是
def hash(s):返回和(bytearray)(s))
。当然最糟糕的hash算法就是
返回0(或任何其他常数)?@OliverCharlesworth-当然,除了42以外的任何常数。
def custom_hash(s):
  hsh = 0
  for c in s: hsh += ord(c)
  return hsh
hsh = reduce(lambda x, y: ord(x) + ord(y), list(s))