Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Java 自定义哈希算法_Java_Algorithm_Hash - Fatal编程技术网

Java 自定义哈希算法

Java 自定义哈希算法,java,algorithm,hash,Java,Algorithm,Hash,是否可以创建一个自定义哈希算法,它可以提供特定范围内的整数。下面的例子 (a,b)是散列的输入。(甲、乙)!=(b,a) 其中a和b都是大于等于0的整数 溶液必须在范围内(最小值、最大值) 这可能吗?有了这个,我希望(a,b)在两种情况下被散列,以提供相同的整数,如果也被赋予相同的范围 多谢各位 (a,b)是散列的输入。(甲、乙)!=(b,a)其中a和b均为 整数>=0 不,假设a=b,那么(a,b)=(b,a)。此约束违反了哈希的一致性,因此不可能是的,当然可能。你为什么不试着写一个呢?你可以

是否可以创建一个自定义哈希算法,它可以提供特定范围内的整数。下面的例子

(a,b)是散列的输入。(甲、乙)!=(b,a) 其中a和b都是大于等于0的整数

溶液必须在范围内(最小值、最大值)

这可能吗?有了这个,我希望(a,b)在两种情况下被散列,以提供相同的整数,如果也被赋予相同的范围

多谢各位

(a,b)是散列的输入。(甲、乙)!=(b,a)其中a和b均为 整数>=0


不,假设a=b,那么(a,b)=(b,a)。此约束违反了哈希的一致性,因此不可能

是的,当然可能。你为什么不试着写一个呢?你可以从这里开始:要得到一个特定范围内的数字,你可以用它来保证(a,b)!=(b,a)。哈希不是防冲突的。@shmosel只要
a!=b
。考虑函数<代码>(a,b)->(a> b?1:0)< /代码>这是一个很好的观点。如果我们假设(a,b)不能等于(b,a),除非它们相等,那会怎么样?还是会假设在某一种情况下,情况就是这样,这也就不可能了?@Jamie,那么这是可能的。但是如果(a,b)!=(a,b)对于所有a,b。最简单的解决方案就是a-b。但这不是一个好方法,因为如果a和b有某种模式,它可能不是均匀分布的。要解决最小、最大范围的问题相当容易。只需将散列h转换为min+h%p,其中p是一些不大于(max-min)的素数