Задача... есть параметры квартир, они загружены в массив. Нужно найти более подходящие варианты для элемента i, где $a[i]->{Type} != $a[n]->{Type}. Притом, что $x->{SSize}, $x->{ESize} и $x->{Price} могут быть не объявлены, т.е. undef или по Сишному == 0.
Смысл подсчитать в процентах какой элемент на сколько подходит к варианту i.
Такого рода поиском никогда не занимался... от сюда думы и опробование разных вариантов ничего хорошего не дали =)
Описываем:
$a[0]->{Type} = 0; #Buy
$a[0]->{SSize} = 1;
$a[0]->{ESize} = 10;
$a[0]->{Price} = 5000;
$a[0]->{PriceOne} = 0; #Boolean
$a[0]->{SellPart} = 0; #Boolean
и например
$a[1]->{Type} = 1; #Seil
$a[1]->{SSize} = 3;
$a[1]->{ESize} = 7;
$a[1]->{Price} = 300;
$a[1]->{PriceOne} = 1; #Boolean
$a[1]->{SellPart} = 0; #Boolean
Первые 4 ключа хеша я думаю всем ясны, а вот:
PriceOne - если истина, то цена указана за один квадратный метр квартиры, следовательно при установленном флаге на примере $a[1] мы получаем что цена квартиры колеблица от 3*300 до 7*300
SellPart - если истина, то квартиру можно продать (но не купить!) по частям ;) следовательно я думаю если флаг установлен то если цена варианта входит в цену i, тогда годиться +n%.
Думаю вряд ли кто мне тут будет писать алгоритм, хотя если кто захочет помочь плиз можно на perl, C, Pascal и даже на qbasic :)
Я больше жду помощи объяснить мне в каком направлении делать... я дошел до того, что надо рассмотреть все варианты когда переменные объявлены и не объявлены (undef) и для каждого варианта уже просчитывать процент схожести! Но тут слишком большой и громоздский код получается :(
Есть ли какие другие идеи реализации?
ЗЫ: Если нет... буду сам дальше думать как и думал =)