Мы делаем хэш -код в C ++, используя метод Хорнера. Он работает в основном с двумя из наших 4 тестовых случаев, но мы не можем выяснить, почему это не работает для последних двух случаев.
unsigned long long horner_hash(string str, int p, int m)
{
vector poly; /*TURN STRINGS INTO ASCII*/
for (int i = 0; i < str.size(); i++)
{
poly.push_back(static_cast(str[i]));
}
unsigned long long result = poly[0]; // Initialize
for (int i = 1; i < poly.size(); i++)
{
result = (result * p + poly[i]) % m;
}
return result;
}
Наши тестовые примеры:
hello
world
Хэндс
Функция
(они должны быть разделены)
Мы делаем хэш -код в C ++, используя метод Хорнера. Он работает в основном с двумя из наших 4 тестовых случаев, но мы не можем выяснить, почему это не работает для последних двух случаев.[code]unsigned long long horner_hash(string str, int p, int m) { vector poly; /*TURN STRINGS INTO ASCII*/ for (int i = 0; i < str.size(); i++) { poly.push_back(static_cast(str[i])); }
unsigned long long result = poly[0]; // Initialize
for (int i = 1; i < poly.size(); i++) { result = (result * p + poly[i]) % m; }
return result; } [/code] Наши тестовые примеры: hello world Хэндс Функция (они должны быть разделены)