відповідь:
решение логических выражений принято записывать в виде таблиц истинности – таблиц, в которых по действиям показано, какие значения принимает логическое выражение при всех возможных наборах его переменных.
при составлении таблицы истинности для логического выражения необходимо учитывать порядок выполнения логических операций, а именно:
действия в скобках,
инверсия (отрицание),
& (конъюнкция),
v (дизъюнкция),
=> (импликация),
< => (эквивалентность).
алгоритм составления таблицы истинности:
1. выяснить количество строк в таблице (вычисляется как 2n, где n – количество переменных + строка заголовков столбцов).
2. выяснить количество столбцов (вычисляется как количество переменных + количество логических операций).
3. установить последовательность выполнения логических операций.
4. построить таблицу, указывая названия столбцов и возможные наборы значений исходных логических переменных.
5. заполнить таблицу истинности по столбцам.
6. записать ответ.
пример 6
построим таблицу истинности для выражения f=(avb)& (¬av¬b).
1. количество строк=22 (2 переменных+строка заголовков столбцов)=5.
2. количество столбцов=2 логические переменные (а, в)+ 5 логических операций (v,& ,¬,v,¬) = 7.
N = int(input())
if N == 1:
exit(0)
bacteria = [0] * N
for i in range(0, N):
bacteria[i] = int(input())
prefix_sum = [bacteria[0]] * N
for i in range(1, N):
prefix_sum[i] = prefix_sum[i - 1] + bacteria[i]
ans = [0] * N
if bacteria[N-1] > bacteria[0]:
ans[N - 1] = 1
for i in reversed(range(2, N)):
if ans[i] == 1:
prev = i - 1
if prefix_sum[prev] > bacteria[i] and bacteria[0] < bacteria[prev]:
ans[prev] = 1
for i in range(N):
print(ans[i])
Объяснение:
g++-GNU C++ 8.3.1
Поделитесь своими знаниями, ответьте на вопрос:
Заданы координаты вершин треугольника и точки. определить, лежит ли точка внутри треугольника. написать программу в c++ или хотя бы формулу, по которой высчитывать это. за внимание
x1, y1, x2, y2, x3, y3 - координаты точек треугольника, x, y - координаты точки.
Найдем векторное произведение, которое равно удвоенной площади треугольника.
Исходный код:
#include <iostream>
using namespace std;
int main() {
int x1, y1, x2, y2, x3, y3, x, y;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x >> y;
if (abs((x1 - x) * (y2 - y) - (x2 - x) * (y1 - y)) +
abs((x1 - x3) * (y - y3) - (x - x3) * (y1 - y3)) +
abs((x - x3) * (y2 - y3) - (x2 - x3) * (y - y3)) ==
abs((x1 - x3) * (y2 - y3) - (x2 - x3) * (y1 - y3)))
{
cout << "In";
} else {
cout << "Out";
}
return 0;
}