В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
taniaselikova
taniaselikova
17.05.2023 00:15 •  Информатика

Напишите программу для многоленточной машины Тьюринга. Даны два числа в 2 сс :101 и 11. Вычислить их сумму.​

Показать ответ
Ответ:
alistas
alistas
27.08.2020 22:37

Объяснение:

1. а) Паша может выиграть, если S = 21, ..., 30. При меньших значениях S за один ход нельзя получить кучу, в которой больше 30 камней. Паше достаточно увеличить количество камней на 10. При S < 21 получить за один ход больше 30 камней невозможно.

1. б) Вова может выиграть первым ходом (как бы ни играл Паша), если исходно в куче будет S = 20 камней. Тогда после первого хода Паши в куче будет 21 камень или 30 камней. В обоих случаях Ваня увеличивает количество камней на 10 и выигрывает в один ход.

2.  Возможные значения S: 10, 19. В этих случаях Паша, очевидно, не может выиграть первым ходом. Однако он может получить кучу из 20 камней (при S=10 он увеличивает количество камней на 10; при S=19 - добавляет 1 камень). Эта позиция разобрана в п. 1 б. В ней игрок, который будет ходить (теперь это Вова), выиграть не может, а его противник (то есть Паша) следующим ходом выиграет.

3. Возможное значение S: 18. После первого хода Паши в куче будет 19 или 28 камней. Если в куче станет 28 камней, Вова увеличит количество камней на 10 и вы играет своим первым ходом. Ситуация, когда в куче 19 камней, разобрана в п. 2. В этой ситуации игрок, который будет ходить (теперь это Вова), выигрывает своим вторым ходом.

В таблице изображено дерево возможных партий при описанной стратегии Вовы. Заключительные позиции (в них выигрывает Вова) подчёркнуты. На рисунке это же дерево изображено в графическом виде (оба изображения дерева допустимы).

0,0(0 оценок)
Ответ:
spirt708ozrmv0
spirt708ozrmv0
06.02.2021 03:38
Выполняя алгоритм, получаем следующий результат (15 итераций)

1. 0..65534 -> 32767
2. 0..32766 -> 16383
3. 0..16382 -> 8191
4. 0..8190  -> 4095
5. 0..4094  -> 2047
6. 2048..4094 -> 3071
7. 2048..3070 -> 2559
8. 2560..3070 -> 2815
9. 2816..3070 -> 2943
10. 2944..3070 -> 3007
11. 2944..3006 -> 2975
12. 2976..3006 -> 2991
13. 2992..3006 -> 2999
14. 3000..3006 -> 3003
15. 3000..3002 -> 3001

Если лень перебирать вручную, можно воспользоваться программой

var k,l,r,x,f:integer;
begin
f := 3001;
l := 0;
r := 65534;
x := (l + r) div 2;
k := 1;
while (x <> f) and (l < r) do
  begin
  writeln(k,' ',l,' ',r,' ',x);
  k := k + 1;
  if f < x then r := x - 1
    else l := x + 1;
  x := (l + r) div 2
  end;
writeln(k,' ',l,' ',r,' ',x);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота