egoryandiana3727283
?>

Постройте таблицу истинности для логического выражения (AVB)&(-BVA)

Информатика

Ответы

Овчинников_Грузман

Просто прогоняем бинарный поиск дважды, сначала ищем ближайшее число, не большее нужного, потом не меньшее. Для того, чтобы такие числа были, можно дописать в массив очень большое число и очень маленькое. Затем выбираем из этих двух найденных чисел то, что будет ближе.

Пример реализации:

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))

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Постройте таблицу истинности для логического выражения (AVB)&(-BVA)
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

mzia-mzia-60682
dima-a
Natakarpova75732
Ямпольский
moskvichkabakery56
denblacky
Иванова
pechatlogo4
kzhgutova
buhtovarish
antoska391
omigunova39
sbarichev330
adminaa
nairahay