т.к. n заранее не дано(и это все лишь фрагмент кода) то m при разных n будет получаться разный. n лежит в промежутке [-2;8]
потому, что тут m:=(l+r)div 2; при n<-2 получается индекс <0
и при n>8 в цикле индекс >7
а массив у нас всего 8 элементов
Поэтому в цикле я вывел все значения m при всех возможных значениях n
Надеюсь понятно объяснил.
при n=-2 m=0
при n=-1 m=0
при n=0 m=0
при n=1 m=1
при n=2 m=2
при n=3 m=3
при n=4 m=4
при n=5 m=5
при n=6 m=6
при n=7 m=6
при n=8 m=6
Pascal
var
a:array [0..7] of integer = (34, 16, 16, 2, 2, 0, -4, -4);
l, n, m, key, r:integer;
flag:boolean;
begin
for n:=-2 to 8 do begin
key:=-4;
L:=1;
r:=n;
flag:=false;
Repeat
m:=(l+r)div 2;
if a[m]>key then
l:=m+1
else
if a[m]=key then
flag:=true
else
r:=m-1;
until flag or (l>r);
writeln('при n=',n,' m=', m);
end;
end.
Объяснение:
Никогда такое не решал, но попробую
На выходе F=1
Идем с конца
До него & (конъюнктор) - это логическое AND
По таблице истинности находим, что На выходе 1, только если на входе 1 и 1, значит А=1
Теперь идем от А. Сначала инверсия, получаем 0
Далее 0 AND B и мы должны получить 1. И тут у меня ломается мозг.
0 AND что угодно - получим 0, а если так, то и F=0 станет.
Вот и логическая бомба.
Решения не вижу у этой задачи, если F=1
Еще функцию надо
F=(A)AND((NOT(A))AND(B))
1=1AND1, значит A=1 и
(NOT(A))AND(B)=1
тогда B=1 и NOT(A)=1.
но NOT(A)=1 и А=1 не может быть. Мы пришли к противоречию.
Утерян "лучший ответ". Нашедшему вернуть.
Поделитесь своими знаниями, ответьте на вопрос:
Шифр 4, 7, 26, 19-26, 13, 18, 14, 22-18, 8-24, 7, 17, 18, 8-2, 6, 16, 18, 13, 22-5, 17, 12, 14? ответ должен получиться примерно такой 9, 26, 15, 26, 13, 22, 8, 22. головоломка(шифр) буквами дано: a=26 z=25 n=13 o=12 вы должны выяснить остальные буквы-цифры кода.
Senki Zesshō Symphogear
Объяснение:
A - 26
B - 1
C - 24
D - 3
E - 22
F - 5
G - 20
H - 7
I - 18
J - 9
K - 16
L - 11
M - 14
N - 13
O - 12
P - 15
Q - 10
R - 17
S - 8
T - 19
U - 6
V - 21
W - 4
X - 23
Y - 2
Z - 25