М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
AGENT284
AGENT284
26.04.2023 09:15 •  Информатика

Объясните :
разбирается дело джона, брауна и смита. известно, что один из них нашёл и утаил клад. на следствии каждый из подозреваемых сделал два заявления:
смит: «я не делал этого. браун сделал это».
джон: «браун не виновен. смит сделал это».
браун: «я не делал этого. джон не делал этого».
суд установил, что один из них дважды солгал, другой дважды сказал правду, третий один раз солгал, один рассказал правду. кто из подозреваемых должен быть оправдан?

👇
Ответ:
балнур6
балнур6
26.04.2023

Джон и Смит

Объяснение:

1. Допустим дважды правду сказал Джон. Тогда Браун невиновен, а Смит - виновен. Смит, утверждая, что он невиновен, солгал. Он также солгал, обвиняя Брауна. Следовательно Браун один раз сказал правду. Проверим. Браун сказал, что это не он и не Джон, т.е. сказал правду дважды, что противоречит нашему выводу. Следовательно, Джон не мог дважды сказать правду.

2. Допустим, дважды правду сказал Браун. Тогда он невиновен, и Джон невиновен, следовательно, виновен Смит. Смит заявил что он невиновен и солгал. Он также обвинил Брауна и солгал еще раз. Значит, один раз правду сказал Браун. Эту версию мы проверяли выше, следовательно исходное допущение неверно.

3. Методом исключения получаем, что дважды правду сказал Смит. Он невиновен, а виновен Браун. Браун, говоря что он невиновен солгал, а его оправдание Джона - правда. Получается, что дважды солгал Джон. Он оправдал Брауна - и это ложь. Также ложно его обвинение Смита.

Противоречий нет, следовательно невиновны Джон и Смит

4,7(41 оценок)
Открыть все ответы
Ответ:
Лучше скопировать код в текстовый файл - не уверен что тут он нормально будет читаться (много комментариев)
/*  Рассматривать будем независимо координаты X (с шириной) и Y (с высотой) * *  Варианты взаимного расположения одной координаты: * * 1) CD левее AB *            A       B *            || *  || *  C        D * * 2) CD пересекает слева AB *            A       B *            || *     || *     C        D * * 3) CD внутри AB *            A       B *            || *             || *             C     D * * 4) AB внутри CD *            A       B *            || *           || *           C         D * * 5) CD пересекает справа AB *            A       B *            || *               || *               C        D * * 6) CD правее AB *            A       B *            || *                      || *                      C        D */

///*  Вс функция  inside_coord() определяет, что координата первого  прямоугольника лежит полностью внутри второго.
  Параметры: координата и размер первого прямоугольника             координата и размер второго прямоугольника
  Возвращает: 1 если координата первого лежит полностью внутри второго или              0 если не полностью или вообще за пределами.  Фактически определяет имеем ли мы вариант 4 (см. выше).*/int inside_coord (int coord1, int size1, int coord2, int size2){   int A = coord1, B = coord1 + size1;   int C = coord2, D = coord2 + size2;
   /* проверяем вариант 4 */   if ((A >= C) && (B <= D)) {     return 1;   }   else  {     return 0;   }}
///*  Вс функция  intersect_coord() определяет, что координаты не пересекаются.  Параметры: координата и размер первого прямоугольника             координата и размер второго прямоугольника
  Возвращает: 1 если не пересекаются, 0 если хоть как-то              пересекаются.  Фактически определяет имеем ли мы вариант 1 или 6 (см. выше).*/int intersect_coord (int coord1, int size1, int coord2, int size2){   int A = coord1, B = coord1 + size1;   int C = coord2, D = coord2 + size2;
   /* проверяем вариант 1 или вариант 6 */   if ((D <= A) || (C >= B)) {     return 1;   }   /* проверяем вариант 6 */   else if (C >= B)  {     return 1;   }   else  {     return 0;   }}
//
/* Переменные содержащие координаты (x, y, ширина, высота) первого прямоугольника: */int x1, y1, width1, height1;/* Переменные содержащие координаты (x, y, ширина, высота) второго прямоугольника: */int x2, y2, width2, height2;

///* функция проверяющая, что все точки первого внутри второго * возвращает 1, если это так, 0 если не так. */int is_first_inside_second (void){int x_inside, y_inside;  /* проверка, что x полностью внутри */  x_inside = inside_coord (x1, width1, x2, width2);  /* проверка, что y полностью внутри */  y_inside = inside_coord (y1, height1, y2, height2);
  if ((x_inside) && (y_inside))  {    /* если x внутри И y внутри, то весь прямоугольник внутри */    return 1;  }  else  {    return 0;  }}
///* функция проверяющая, что все точки второго внутри первого * возвращает 1, если это так, 0 если не так. */int is_second_inside_first (void){int x_inside, y_inside;  /* проверка, что x полностью внутри */  x_inside = inside_coord (x2, width2, x1, width1);  /* проверка, что y полностью внутри */  y_inside = inside_coord (y2, height2, y1, height1);
  if ((x_inside) && (y_inside))  {    /* если x внутри И y внутри, то весь прямоугольник внутри */    return 1;  }  else  {    return 0;  }}
///* функция проверяющая, что все точки одного внутри второго * возвращает 1, если это так, 0 если не так. */int is_any_inside_any (void){  /* проверка что первый внутри второго или второй внутри первого */  if (is_first_inside_second() || is_second_inside_first())  {    return 1;  }  else  {    return 0;  }}
///* функция проверяющая, что прямоугольники пересекаются * возвращает 1, если это так, 0 если не так. */int is_intersection (void){int x_intersect, y_intersect;  /* проверка, что x вообще пересекаются хоть как-то */  x_intersect = intersect_coord (x1, width1, x2, width2);  /* проверка, что y вообще пересекаются хоть как-то */  y_intersect = intersect_coord (y1, height1, y2, height2);
  if ((x_intersect) && (y_intersect))  {    /* если x пересекаются И y пересекаются, прямоугольники пересекаются */    return 1;  }  else  {    return 0;  }}
4,7(48 оценок)
Ответ:
loveinyourhard
loveinyourhard
26.04.2023
int a = 0, b = 0, c = 0, d = 0;

do {
cout << "Введите размеры стола a>b: " << endl;
cin >> a >> b;
} while (b > 0 && a > b);

do {
cout << "Введите размеры прямоугольника c>d: " << endl;
cin >> c >> d;
} while (c > 0 && c > d);

int n1 = (a / c) * (b / d);
int n2 = (a / d) * (b / c);
cout << "Длинной вдоль длинной= " << n1 << " длинной вдоль короткой=
" << n2 << endl;
if (n1 > n2) {
cout << "Длинной стороной вдоль длинной больше" << endl;
}
else if (n2 > n1) {
cout << "Длинной стороной вдоль короткой больше" << endl;
}
else {
cout << "При разном расположении одинаково" << endl;
}
4,6(97 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ