Поскольку переменных всего четыре, можно составить таблицу всех возможных значений (2^4=16) и рассмотреть задачи наглядно. К решению прилагаются картинки.
Задача 1:
Пусть (A v B v C) - X , ( B & C & D) - Y.
Тогда X & Y = 1. Такое может быть только в одном случае, когда и X и Y равны 1. То есть:
(B&C&D) = 1 И (A v B v C) = 1
Для выполнения первого условия необходимо, чтобы все три переменных были 1. Из 16 возможных вариантов остается только 2 (обозначены светло-зеленым). В этих двух вариантах второе условие выполняется автоматически (либо A, либо B, либо C - равны 1).
ответ: 2
Задача 2:
Пусть (A v B v C) - X , ( B & C & D) - Y.
Тогда X v Y = 0. Такое может быть только в одном случае, когда и X и Y равны 0. То есть:
(B&C&D) = 0 И (A v B v C) = 0
Рассмотрим второе условие. Для его выполнения необходимо, чтобы A,B и C были равны нулю. Из 16 возможных вариантов остается 2. Первое условие для этих двух вариантов выполняется автоматически (либо B, либо C, либо D - равны 0).
ответ: 2
Задача 3:
Здесь три скобки, объединенные между собой дизъюнкцией (логическое ИЛИ). Результат равен нулю. То есть ни одна скобка не должна быть равна единице (или все три скобки должны быть равны нулю):
(A -> C) = 0 И (B & A)=0 И (D -> B & C)=0
Рассмотрим третье условие:
(D -> B & C) = 0
У конъюнкции (&) приоритет выше, значит, это первое действие. Вторым будет выполняться импликация. Импликация дает ноль только в том случае, когда левое значение (D) равно единице, а правое нулю. Выделим те варианты, когда это выполняется (светло-зеленым): когда D равно единице, а B&C - нулю (то есть когда одно из них равно нулю).
Далее рассмотрим, когда выполняется второе условие (из уже оставшихся 6 вариантов):
(B & A) = 0 (либо B либо A должны быть равны нулю)
Отметим оставшиеся варианты темно-зеленым.
Осталось первое условие: (A -> C) = 0.
Как мы уже говорили, импликация дает ноль только в том случае, когда левое значение (A) равно единице, а правое (C) - нулю. Оставшийся один вариант отмечен синим.
ответ: 1
Задача 4:
Пусть (A & B & C) - X, (C & D) - Y. Тогда:
X -> Y = 1
В таблице истинности для импликации только один вариант дает ноль. Следовательно, нужно исключить лишь его. Остальные варианты будут решением. Рассмотрим, сколько решений имеет логическое уравнение X -> Y = 0, затем из всех возможных вариантов (16, поскольку 4 переменных) вычтем найденное количество.
Импликация дает ноль только в том случае, когда левое значение (X) равно единице, а правое нулю.
Перепишем условие:
X = 1 И Y =0
(A & B & C) = 1 И (C & D) =0
Первое условие выполняется только в том случае, когда A,B и C равны единице. Таких вариантов два (светло-зеленые). Также либо C либо D должны быть равны нулю. Остается один вариант.
Вспомним, что мы решали обратную задачу. Следовательно, итоговый ответ будет: 16-1=15
ответ: 15
Примечание: решать можно и другими возможно, более простыми. Здесь лишь показан один из путей решения.
#include <stdio.h>
#include <locale.h>
#include <time.h>
#include <stdlib.h>
int main()
{
setlocale(0, "");
srand(time(NULL));
int A[20];
int amount = 0;
int size;
printf("Введите размер массива: ");
scanf("%d", &size);
for (int i = 0; i < size; i++)
{
A[i] = rand() % 100 - 50;
printf("%d\t", A[i]);
amount += A[i];
}
printf("\n");
if (amount > 50)
{
printf("%d", amount);
}
else
{
for (int i = 0; i < size; i++)
{
printf("%d\t", A[i]);
}
}
}
Объяснение:
#include <stdio.h> // Библиотека ввода - вывода
#include <locale.h> // Библиотека локализации
#include <time.h> // Библиотека для работы со временем
#include <stdlib.h> // Библиотека для рандома
int main()
{
setlocale(0, ""); // Локализация
srand(time(NULL)); // Сброс времени (каждый раз новые числа)
int A[20]; // Создание целочисленного массива размером 20
int amount = 0; // Создание целочисленной переменной amount, хранящей в себе сумму элементов массива
int size; // Создание целочисленной переменной, хранящей в себе размер массива
printf("Введите размер массива: "); // Вывод сообщения в консоль
scanf("%d", &size); // Вводим размер массива с клавиатуры
for (int i = 0; i < size; i++) // Идём по массиву
{
A[i] = rand() % 100 - 50; // Генерация случайных чисел
printf("%d\t", A[i]); // Выводим массив
amount += A[i]; // Суммируем элементы
}
printf("\n"); // Перенос на следующую строку
if (amount > 50) // Если значение переменной amount > 50
{
printf("%d", amount); // Выводим сумму
}
else // Иначе
{
for (int i = 0; i < size; i++) // Идём по массиву
{
printf("%d\t", A[i]); // Выводим элементы массива
}
}
}
ответ: 2, 2, 1, 15
Объяснение:
Поскольку переменных всего четыре, можно составить таблицу всех возможных значений (2^4=16) и рассмотреть задачи наглядно. К решению прилагаются картинки.
Задача 1:
Пусть (A v B v C) - X , ( B & C & D) - Y.
Тогда X & Y = 1. Такое может быть только в одном случае, когда и X и Y равны 1. То есть:
(B&C&D) = 1 И (A v B v C) = 1
Для выполнения первого условия необходимо, чтобы все три переменных были 1. Из 16 возможных вариантов остается только 2 (обозначены светло-зеленым). В этих двух вариантах второе условие выполняется автоматически (либо A, либо B, либо C - равны 1).
ответ: 2
Задача 2:
Пусть (A v B v C) - X , ( B & C & D) - Y.
Тогда X v Y = 0. Такое может быть только в одном случае, когда и X и Y равны 0. То есть:
(B&C&D) = 0 И (A v B v C) = 0
Рассмотрим второе условие. Для его выполнения необходимо, чтобы A,B и C были равны нулю. Из 16 возможных вариантов остается 2. Первое условие для этих двух вариантов выполняется автоматически (либо B, либо C, либо D - равны 0).
ответ: 2
Задача 3:
Здесь три скобки, объединенные между собой дизъюнкцией (логическое ИЛИ). Результат равен нулю. То есть ни одна скобка не должна быть равна единице (или все три скобки должны быть равны нулю):
(A -> C) = 0 И (B & A)=0 И (D -> B & C)=0
Рассмотрим третье условие:
(D -> B & C) = 0
У конъюнкции (&) приоритет выше, значит, это первое действие. Вторым будет выполняться импликация. Импликация дает ноль только в том случае, когда левое значение (D) равно единице, а правое нулю. Выделим те варианты, когда это выполняется (светло-зеленым): когда D равно единице, а B&C - нулю (то есть когда одно из них равно нулю).
Далее рассмотрим, когда выполняется второе условие (из уже оставшихся 6 вариантов):
(B & A) = 0 (либо B либо A должны быть равны нулю)
Отметим оставшиеся варианты темно-зеленым.
Осталось первое условие: (A -> C) = 0.
Как мы уже говорили, импликация дает ноль только в том случае, когда левое значение (A) равно единице, а правое (C) - нулю. Оставшийся один вариант отмечен синим.
ответ: 1
Задача 4:
Пусть (A & B & C) - X, (C & D) - Y. Тогда:
X -> Y = 1
В таблице истинности для импликации только один вариант дает ноль. Следовательно, нужно исключить лишь его. Остальные варианты будут решением. Рассмотрим, сколько решений имеет логическое уравнение X -> Y = 0, затем из всех возможных вариантов (16, поскольку 4 переменных) вычтем найденное количество.
Импликация дает ноль только в том случае, когда левое значение (X) равно единице, а правое нулю.
Перепишем условие:
X = 1 И Y =0
(A & B & C) = 1 И (C & D) =0
Первое условие выполняется только в том случае, когда A,B и C равны единице. Таких вариантов два (светло-зеленые). Также либо C либо D должны быть равны нулю. Остается один вариант.
Вспомним, что мы решали обратную задачу. Следовательно, итоговый ответ будет: 16-1=15
ответ: 15
Примечание: решать можно и другими возможно, более простыми. Здесь лишь показан один из путей решения.