Какое из приведённых имён удовлетворяет логическому условию "(Первая буква согласная ИЛИ Последняя буква согласная) и НЕ (Последняя буква согласная)" ?
Дизъюнкция - логическое сложение. В естественном языке соответствует союзу "ИЛИ". Логическое "ИЛИ" истинно тогда и только тогда, когда истинно хотя бы одно из составляющих высказываний. Конъюнкция - логическое умножение. В естественном языке соответствует союзу "И". Логическое "И" истинно тогда и только тогда, когда истинны оба высказывания. Инверсия - это отрицание. В естественном языке соответствует частице "НЕ". Отрицание - логическая операция, которая с связки "НЕ" каждому исходному выражению ставит в соответствие составное высказывание, заключающееся в том, что исходное выражение отрицается.
Запишем выражение в исходном виде.
Рассмотрим возможные варианты. а) Вадим - ложно, поскольку первая и последняя буквы - согласные. б) Иван - ложно, поскольку первая буква гласная. в) Таня - истинно, поскольку первая буква согласная и последняя буква гласная. г) Олеся - ложно, поскольку первая буква гласная.
Дизъюнкция - логическое сложение. В естественном языке соответствует союзу "ИЛИ". Логическое "ИЛИ" истинно тогда и только тогда, когда истинно хотя бы одно из составляющих высказываний.
Конъюнкция - логическое умножение. В естественном языке соответствует союзу "И". Логическое "И" истинно тогда и только тогда, когда истинны оба высказывания.
Инверсия - это отрицание. В естественном языке соответствует частице "НЕ".
Отрицание - логическая операция, которая с связки "НЕ" каждому исходному выражению ставит в соответствие составное высказывание, заключающееся в том, что исходное выражение отрицается.
Запишем выражение в исходном виде.
Рассмотрим возможные варианты.
а) Вадим - ложно, поскольку первая и последняя буквы - согласные.
б) Иван - ложно, поскольку первая буква гласная.
в) Таня - истинно, поскольку первая буква согласная и последняя буква гласная.
г) Олеся - ложно, поскольку первая буква гласная.
def LineUpArraySize(num)
cur_size = 4
while num > cur_size
cur_size = 2 * cur_size + 8
end
cur_size = 2 * cur_size + 8
end
def getSpiralNeighbours(num)
a = []
a[0] = [0, 0]
a[1] = [-1, 1]
moves = [[1, 0], [0, -1], [-1, 0], [0, 1]]
move_direction = 0
side_size = 2
cur_size = 1
cycle = 1
mode_direction = 0
for i in 2..LineUpArraySize(num)
new_num = Array.new(2)
new_num[0] = a.last[0] + moves[move_direction][0]
new_num[1] = a.last[1] + moves[move_direction][1]
a[i] = new_num
# p new_num
cur_size += 1
if cur_size == side_size
cur_size = 1
move_direction = (move_direction + 1) % 4
side_size += 1 if move_direction % 2 == 0
cycle += 1 if move_direction == 0
end
end
a.each_with_index do |i,x|
p [x, i] if (i[0]-a[num][0]).abs <= 1 and (i[1]-a[num][1]).abs <= 1
end
end
getSpiralNeighbours(1090)
Вывод (числа и условные координаты)
[962, [15, 16]]
[1089, [15, 17]]
[1090, [16, 17]]
[1091, [16, 16]]
[1224, [15, 18]]
[1225, [16, 18]]
[1226, [17, 18]]
[1227, [17, 17]]
[1228, [17, 16]]