¬ (A v B ) /\ ¬ C =(раскроем скобки по закону де-Моргана)=
= ¬A /\ ¬B /\ ¬ C =(доказательство этого перехода - через таблицу истинности)= ¬(A v B v C)
Доказательство последнего равенства:
1) ¬A /\ ¬B /\ ¬ C
А B C F
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
2) ¬(A v B v C)
Так как таблицы истинности совпали, последний переход равносилен.
ответ: ¬(A v B v C)
ответ:Это самое короткое что я знаю
Объяснение:#include <iostream>
#include <cstring>
using namespace std;
int main() {
char s[100], *ps = s, ch, mch;
int mn = 100, n = 0;
cout << "string? ";
cin >> s;
ch = *ps;
do {
++ps;
++n;
if (ch != *ps) {
if (mn > n) {
mn = n;
mch = ch;
}
n = 0;
} while (*ps);
cout << "result: ";
for (int c = 0; c < mn; ++c) cout << mch;
return 0;
¬ (A v B ) /\ ¬ C =(раскроем скобки по закону де-Моргана)=
= ¬A /\ ¬B /\ ¬ C =(доказательство этого перехода - через таблицу истинности)= ¬(A v B v C)
Доказательство последнего равенства:
1) ¬A /\ ¬B /\ ¬ C
А B C F
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
2) ¬(A v B v C)
А B C F
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
Так как таблицы истинности совпали, последний переход равносилен.
ответ: ¬(A v B v C)
ответ:Это самое короткое что я знаю
Объяснение:#include <iostream>
#include <cstring>
using namespace std;
int main() {
char s[100], *ps = s, ch, mch;
int mn = 100, n = 0;
cout << "string? ";
cin >> s;
ch = *ps;
do {
++ps;
++n;
if (ch != *ps) {
if (mn > n) {
mn = n;
mch = ch;
}
ch = *ps;
n = 0;
}
} while (*ps);
cout << "result: ";
for (int c = 0; c < mn; ++c) cout << mch;
return 0;
}