Как отмечали некоторые другие, Как отмечали некоторые другие, [110] всегда установлено, поэтому ваш сценарий никогда не входит в ваше предложение Попробуйте это; измените свой первый экземпляр: Как отмечали некоторые другие, [110] всегда установлено, поэтому ваш сценарий никогда не входит в ваше предложение [111]. Попробуйте это; измените свой первый экземпляр: [112] на Как отмечали некоторые другие, [110] всегда установлено, поэтому ваш сценарий никогда не входит в ваше предложение [111]. Попробуйте это; измените свой первый экземпляр: [112] на [113] Как отмечали некоторые другие, [110] всегда установлено, поэтому ваш сценарий никогда не входит в ваше предложение [111]. Попробуйте это; измените свой первый экземпляр: [112] на [113]
всегда установлено, поэтому ваш сценарий никогда не входит в ваше предложение else{}
. if(isset(
на if(sizeof(
if(sizeof(
else{}
.
Попробуйте это; измените свой первый экземпляр:
Как отмечали некоторые другие, [110] всегда установлено, поэтому ваш сценарий никогда не входит в ваше предложение [111]. Попробуйте это; измените свой первый экземпляр: [112] на Как отмечали некоторые другие, [110] всегда установлено, поэтому ваш сценарий никогда не входит в ваше предложение [111]. Попробуйте это; измените свой первый экземпляр: [112] на [113] Как отмечали некоторые другие, [110] всегда установлено, поэтому ваш сценарий никогда не входит в ваше предложение [111]. Попробуйте это; измените свой первый экземпляр: [112] на [113] if(isset(
на if(sizeof(
if(sizeof(
Я сделал некоторых (неопубликованный, практичный) эксперименты с тестированием множества строковых хеш-алгоритмов. (Оказывается, что хеш-функция Java по умолчанию для Строк сосет.)
легкий эксперимент должен хешировать английский словарь и выдержать сравнение, сколько коллизий Вы имеете на алгоритме по сравнению с алгоритмом B.
можно создать подобный эксперимент: случайным образом генерируйте $BIG_NUMBER возможных векторов длины 7 или меньше. Хешируйте их на алгоритме A, хешируйте их на алгоритме B, затем сравните число и серьезность коллизий.
После того, как Вы можете сделать это, можно использовать моделируемый отжиг или подобные методы для нахождения "магических чисел", которые работают хорошо для Вас. В моей работе, для данных словарей интереса и плотно ограниченного размера хэша, мы смогли заставить универсальный алгоритм работать хорошо на несколько естественных языков путем варьирования "магических чисел".
В зависимости от размера констант я должен был бы сказать, что степень хаоса во входном векторе окажет влияние на результат. Однако быстрый качественный анализ Вашего сообщения предложил бы, чтобы у Вас было хорошее начало:
Из любопытства, почему не только используют существующий алгоритм хеширования для целых чисел и выполняют некоторую интересную математику на результатах?
Python раньше хешировал кортежи этим способом ( источник ):
class tuple:
def __hash__(self):
value = 0x345678
for item in self:
value = c_mul(1000003, value) ^ hash(item)
value = value ^ len(self)
if value == -1:
value = -2
return value
В Вашем случае, item
всегда было бы целое число, которое использует этот алгоритм:
class int:
def __hash__(self):
value = self
if value == -1:
value == -2
return value
Это действительно не имеет никакого отношения к внутреннему продукту, хотя... поэтому, возможно, это не много справки.
В то время как я мог бы полностью неправильно понимать Вас, возможно, это - хорошая идея рассматривать вектор как поток байтов, и сделать некоторые знают хеш на нем, т.е. SHA1 или MD5.
Просто для уточнения, те хеши, как известно, имеют хорошие свойства хеша, и я полагаю, что нет никакой причины заново изобрести велосипед и реализовать новый хеш. Другая возможность состоит в том, чтобы использовать известный CRC angorithm.