Создайте формулы по следующим выражениям: 1) Записать формулу, по которой можно рассчитать значения корней квадратного уравнения Y=4*X^2 + 3*X + 25*A.
2) A равно знаку суммы по i (i изменяется от -m до n). За знаком суммы Q c индексом i в степени i умноженное на X.
используются
маски имен файлов. Маска представляет собой
последовательность букв, цифр и прочих допустимых в именах файлов символов, в
которых также могут встречаться следующие символы: символ «?» (вопросительный
знак) означает ровно один произвольный символ; символ «*» (звездочка) означает любую последовательность символов
произвольной длины, в том числе «*» может задавать и пустую последовательность.
Определите,
какое из указанных имен файлов удовлетворяет маске: ?el*.t*xt.
A) spell.txt
B) pencil.text
C) el.txt
D) welcome.text
Просто прогоняем бинарный поиск дважды, сначала ищем ближайшее число, не большее нужного, потом не меньшее. Для того, чтобы такие числа были, можно дописать в массив очень большое число и очень маленькое. Затем выбираем из этих двух найденных чисел то, что будет ближе.
Пример реализации:
def bin_search(arr, target, kind="<="):
assert kind in ["<=", ">="]
if kind == "<=":
comp = lambda a, b: a <= b
else:
comp = lambda a, b: a < b
l = 0
r = len(a) - 1
while l < r - 1:
m = (l + r) // 2
if comp(a[m], target):
l = m
else:
r = m
if kind == "<=":
return arr[l]
else:
return arr[r]
def nearest(arr, target):
nearest_le = bin_search(arr, target, "<=")
nearest_ge = bin_search(arr, target, ">=")
if nearest_ge - target < target - nearest_le:
return nearest_ge
else:
return nearest_le
_ = input()
a = [int(x) for x in input().split()]
a = [float("-Infinity")] + a + [float("+Infinity")]
for target in map(int, input().split()):
print(nearest(a, target))