Я пытаюсь придумать функцию / отображение от заданного числа n
до двух чисел lo
и hi
. И lo
, и hi
имеют кратное 2, начиная со значения 6,25. И lo
, и hi
также имеют свойство lo <= n < hi
.
По существу lo
и hi
являются двумя ближайшими к n
значениями, образованными из 6.25 * (2^x)
, где x
неизвестно.
Можно предположить, что n >= 6.25
,
Вот некоторые примеры:
n = 10 -> [6.25, 12.5]
n = 12 -> [6.25, 12.5]
n = 13 -> [12.5, 25]
n = 25 -> [25, 50]
n = 40 -> [25, 50]
n = 50 -> [50, 100]
n = 300 -> [200, 400]
n = 400 -> [400, 800]
n = 413 -> [400, 800]
n = 500 -> [400, 800]
Это просто написать как oop в JavaScript, например:
const nearest = n => {
let lo = 6.25;
let hi = lo * 2;
while (n >= hi) {
lo *= 2;
hi *= 2;
}
return [lo, hi];
}
Но в идеале Скорее, делайте это по-математике и не используйте петли. У кого-нибудь есть идеи?