Полагаю, это зависит от вашей парадигмы программирования.
В качестве примера в среде программирования списка, такой как Mathematica, вы можете сделать:
f[x_,bound_] :=
With[{d = (IntegerPart[Dimensions[x][[1]]/2] + 1)},
And @@ Flatten[
Table[{x[[d, i]] > bound,
x[[d, i + d]] < bound,
x[[i, d]] > bound,
x[[i + d, d]] < bound},
{i, d - 1}]]]
И вызвать функцию с помощью
f[{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}},5]
f [] возвращает True, если выполняются ваши условия, в противном случае - False.
Код не является оптимальным, поскольку он не закорачивает И и продолжает вычислять до конца, а затем И все результаты.Это облегчает поддержку кода.В зависимости от ваших требований к производительности, которые могут (или не могут) быть возможными в вашем случае.