[C++] Можно проще и лучше11.04.03 20:49 Число просмотров: 1128 Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 11.04.03 20:59 Количество правок: 2
Есть задача найти запись в массиве. Массив состоит из пар чисел от 1 до 255, за исключением n-n, причем одна и та же запись должна находиться как по n-m, так и по m-n, следовательно, максимум может быть (255*255-255)/2 = 32385 записей. Например, пары чисел 10-100 и 100-10 должны ссылаться на одну и туже запись в массиве. Я решил использовать для индекса некое подобие hash функции.
(((a+(b-a(b-a))*(a+(b-a)*(b-a)))+((b+(a-b)*(a-b))*(b+(a-b)a-b))))
или такая запись
(a+(b-a)2)2+(b+(a-b)2)2 Жутко громоздко, но работает.
Например, для пар 10-100 и 100-10 индекс будет 133012100.
Для тех, кто понял всю эту галиматью у меня вопрос. Есть ли идеи на счет какого-нибудь менее громоздкого/быстрого решения в целом или hash функции в частности?
Любая помощь/критика приветствуется.
[C++] Можно проще и лучше11.04.03 20:49 Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 11.04.03 20:59 Количество правок: 2