Это практический вопрос для подготовки к экзамену. Нам дают этот код:
x=c(T,T,F,T,F)
for (i in 1:5){
if(i > 1 & i < 5){
x[i ] = x[i-1] & x[i+1] & x[i]
print(x)
}
}
и просят предсказать вывод. Вывод:
[1] TRUE FALSE FALSE TRUE FALSE
[1] TRUE FALSE FALSE TRUE FALSE
[1] TRUE FALSE FALSE FALSE FALSE
, и я не могу по жизни для меня понять это. Может кто-нибудь объяснить, пожалуйста, логи c за вывод? Я использовал для циклов и операторов if ... else в других контекстах, но true / false действительно отталкивает меня. Я предполагаю, что выходных данных три строки, потому что в операторе if 3 значения i. Когда я пытаюсь «запустить» код в моей голове, я получаю одну строку вывода: «ИСТИНА, ЛОЖЬ, ЛОЖЬ, ЛОЖЬ, ЛОЖЬ», потому что i = 1 и i = 5 будут неизменными, а i = 2 3,4 ложны, потому что x [i-1] & x [i + 1] & x [i] дают ложь в качестве ответа в логических логиках c.