Вход/Регистрация
Программирование игр и головоломок
вернуться

Арсак Жак

Шрифт:

ПРОЧЕСТЬ n, b

ПОКА n > b ВЫПОЛНЯТЬ

ЕСЛИ n четно ТО n := n/2

ИНАЧЕ n := n– b

КОНЕЦ_ЕСЛИ

ВЕРНУТЬСЯ

СООБЩИТЬ ЕСЛИ n = 0 ТО 'ДА'

ИНАЧЕ 'НЕТ' КОНЕЦ_ЕСЛИ

Вы можете попробовать выполнить ее вручную для

n = 277– 3, b = 7.

Забавно, не правда ли? Несмотря на свою исключительную» простоту, эта программа, кажется, новая…

*** Головоломка 18. Посерьезнее. Эта — несомненно более трудная. И тоже неопубликованная. Боюсь, что вы можете избаловаться… На вход программы подается n — нечетное натуральное число.

ПРОЧЕСТЬ n

q := (n– 1)/4; p := целая_часть (q)

ЕСЛИ q /= p ТО СООБЩИТЬ 'НЕТ';

КОНЕЦ_РАБОТЫ КОНЕЦ ЕСЛИ

ЕСЛИ нечетное p ТО СООБЩИТЬ 'НЕТ';

КОНЕЦ_РАБОТЫ КОНЕЦ_ЕСЛИ

a := 4; b := 1

ПОКА p >= a ВЫПОЛНЯТЬ

p := p/2

ЕСЛИ нечетное p ТО p := p– a/2 - b;

b := a– b КОНЕЦ ЕСЛИ a := a + a ВЕРНУТЬСЯ

ЕСЛИ p = 0 ТО СООБЩИТЬ b;

КОНЕЦ РАБОТЫ КОНЕЦ_ЕСЛИ

ЕСЛИ p + 2*b = a ТО СООБЩИТЬ a– b;

КОНЕЦ РАБОТЫ КОНЕЦ_ЕСЛИ

ЕСЛИ p = 4 * (a– b) ТО СООБЩИТЬ 2 * a– b;

КОНЕЦ РАБОТЫ КОНЕЦ_ЕСЛИ

СООБЩИТЬ 'НЕТ'; КОНЕЦ_РАБОТЫ

Я не запрещаю вам перевести эту программу на ваш любимый язык, а затем испытать ее для различных значений n. Есть маленький шанс, что вы угадаете, на что она способна. Это не очевидно!

** Головоломка 19. Вклад Жака Гебенстрейта. Я обязан Жаку Гебенстрейту следующей программой. Она была предложена в том виде, в каком я ее привожу, без какого-либо комментария (это было сделано без злого умысла с его стороны: сам он получил не больше от того, кто дал ему эту программу).

ПРОЧЕСТЬ a, b; p : = max (a, b); q := min (a, b)

ПОКА q > eps ВЫПОЛНЯТЬ

r := (q/p)^2; s := r/(r + 4)

p := (2 * s + 1) * p; q := s * q

ВЕРНУТЬСЯ

результат := p

Как вам кажется, что вычисляет эта программа?

3. Игры без стратегии

Общие предложения

Мы собираемся предложить здесь игры для программирования. Мы выбрали их потому, что они не требуют придумывания выигрывающей стратегии при составлении программы. Каждая игра ставит вас перед, вообще говоря, непредсказуемой ситуацией. Вы должны играть, соблюдая правила и имея в виду добиться определенной цели. Вам следовало бы развить собственную стратегию. После того, как вы предложили свой ход, компьютер сообщает новое состояние игры, затем изменяет это состояние некоторым почти полностью определенным образом. Ваша стратегия должна оценить, как именно.

  • Читать дальше
  • 1
  • ...
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: