Как из таблицы получить значения самое близкое к указанному?

Страницы: 1
RSS
Как из таблицы получить значения самое близкое к указанному?
 
Привет всем!
Подскажите пожалуйста, как из таблицы  получить значения самое близкое к указанному?
То есть:
например есть таблица T и есть определенное значение val
Код
T = {1.235,3.215,4.953,5.531,11.845,14.312,15.359,15.498}
val = 12
Так вот, значение val равно 12, значит из таблицы надо вытащить 11.845
если val равно 14,5 , значит из таблицы надо вытащить 14.312
если val равно 2, значит из таблицы надо вытащить 1.235
если val равно 2,7 значит из таблицы надо вытащить 3.215

Спасибо!
 
Код
   
    local t = { 1.235, 3.215, 4.953, 5.531, 11.845, 14.312, 15.359, 15.498 }
  
    local function nearest(v,tbl);
        local x,val;
        for i = 1, #tbl do;
            local dlt = math.abs(v-tbl[i]);
            if not x or dlt < x then;
                x = dlt;
                val = tbl[i];
            end;
        end;
        return val;
    end;
    
    print( nearest( 8   , t ) )
    print( nearest( 14.5, t ) )
    print( nearest( 2   , t ) )
    print( nearest( 2.7 , t ) )
Страницы: 1
Читают тему (гостей: 1)
Наверх