Чтение онлайн

на главную - закладки

Жанры

Программирование игр и головоломок
Шрифт:

Я обратил ваше внимание на эту задачу, поскольку ее решения всюду приведены. Ее можно в высшей степени элегантным образом решить с помощью рекурсивной процедуры. Но нетрудно дать решение и в итеративной форме,

Деликатный вопрос связан с представлением шахматной доски. Но и возможности этого выбора также обсуждаются в известных книгах.. Что же тогда остается найти?

Если у вас нет этих книг, то остается найти решение. Нет — решения, поскольку их 92. Но не все они существенно различны, так как шахматная доска обладает симметриями.

Поэтому пытайтесь искать только основные решения, исходя

ив которых и используя симметрии шахматной доски, можно найти все остальные решения…

В этом примере вам не следует бояться сложности. Даже самые плохие программы будут все еще достаточно быстры…

?** Головоломка 21. X ферзей.

Поставить на шахматной доске 8 ферзей так, чтобы они друг другу не угрожали, можно. Но трудности, с которыми мы встретились при попытке достичь решения без помощи компьютера, ясно показывают, что нет необходимости в 8 ферзях, чтобы блокировать всю шахматную доску.

Каково наименьшее число ферзей, необходимых для блокирования шахматной доски, так, чтобы не было возможности поставить ни одной фигуры ни на одно поле, чтобы один из уже стоящих ферзей не мог эту фигуру взять?

Так как я вам не задал x, то вам нужно пытаться заставить x либо расти, либо уменьшаться. Впрочем, в этой задаче наши дела идут хуже, чем с 8 ферзями. В предыдущей задаче мы знали, что в каждой строке и каждом столбце обязательно должен быть ферзь. Если ферзей меньше 8, то это уже неверно.

* Головоломка 22. Домино.

Маленькая прелестная головоломна, совсем не трудная. Она была предложена на испытании на проницательность на конкурсе организации АФСЕТ по программированию в 1981 году.

Берутся 7 костяшек из одного набора домино. Напомним, что эти шашки сделаны из двух частей, на каждой из которых либо ничего не написано (чистая сторона), либо очки в числе от 1 до 6,

Задача состоит в том, чтобы образовать из этих 7 костей все возможные цепи, состыковывая костяшки домино частями с равными количествами точек. Нет никакой уверенности, что такая цепь существует.

Не ведите себя так, как некоторые из соревнующихся на этом конкурсе. Я тогда входил в жюри. Мы должны были оценивать работы соревнующихся. Если бы я принимал решения единолично, я потребовал бы, чтобы мне были представлены тексты программ, и я бы судил по самим произведениям. Но другие члены жюри нашли более длинный и более сложный метод, Они приготовили специальные тесты. Они должны были быть испытаны на программах соревнующихся, и нужно было подсчитать число правильных ответов, чтобы расклассифицировать соревнующихся. Новое обсуждение: я выдвигаю оценку, что и один-единственный неверный ответ выражает ошибочность программы и, следовательно, выводит ее из конкурса. В конце концов было решено, что так и будем делать. Все программы, содержащие ошибку, будут рассматриваться как неверные, Если две команды получат одинаково верные ответы, то мы еще раз детально изучим полученные результаты, стараясь разгадать природу ошибки при переходе к данному тесту от уже удавшихся, чтобы отдать одному из них предпочтение. Вот нам и досталось: один ив соревнующихся, думая, что с удавшимися тестами это согласуется, пытался упростить программу для домино. Он сказал себе, что вне всякого сомнения, будут даны кости, из которых никаких цепей ставить нельзя. Его программа читала последовательность костей домино и сообщала НЕВОЗМОЖНО без каких-либо других вычислений. Если бы я не настаивал на своем так решительно, то он был бы не хуже других…

Не поступайте так. Эта задача при всем том нетрудная… Рис. 29 дает пример цепи.

* Головоломка 23. Последовательность 0—1—4—6.

Это головоломка, на которую я натолкнулся, работая над своей диссертацией на ученую степень по

физике. Я занимался сетями антенн для радиоастрономии. Сеть антенн состоит из основания, на котором по одной линии размещены отдельные антенны, доставляющие информацию о наблюдаемых нами звездах. Каждая нара антенн дает информацию о некоторой величине, пропорциональной расстоянию между двумя антеннами этой пары. Нас интересуют значения этой величины, образующие арифметическую прогрессию. Таким образом, нужно было располагать антенны таким образом, чтобы расстояния между равными парами образовывали арифметическую прогрессию. Я предложил систему из 4 антенн, расположенных на прямой в точках с абсциссами 0 1 4 6.

Тогда получаемые из них 6 различных пар приводят к расстояниям между антеннами, пропорциональным следующим числам:

0—1 1

4—6 2

1—4 3

0—4 4

1—6 5

0—6 6

Можно сформулировать задачу по-другому. Нужно найти последовательность натуральных чисел a1, a2, …, an — последовательность, которую можно предполагать возрастающей — такую, чтобы попарные разности членов этой последовательности ajai (j > i) были попарно различны и образовывали последовательность всех целых чисел от 1 до n(n– 1)/2.

Это — еще и проблема трансформатора (см. рис. 30), Если включить во вторичную обмотку 4 выхода так, чтобы число витков между первым и другими выходами находилось в отношениях 1, 4 и 6, то можно получить 6 напряжений на выходе, образующих арифметическую прогрессию.

Опустим другие физические задачи, порождающие такие последовательности. Четырехчленная последовательность 0—1—4—6, по-видимому, является наибольшей последовательностью, обладающей свойством порождать последовательность первых целых чисел, не пропуская и не повторяя дважды ни одного из них, при попарном вычитании членов этой последовательности.

Так, для 5 целых можно образовать 10 разностей. Поэтому крайние члены должны быть a1 = 0, a5 = 10. Чтобы получить в виде разности 9 из двух членов последовательности, нужно, чтобы либо было a2 = 1, и тогда a5a2 = 9, либо a4 = 9. Эти два решения легко получаются одно из другого операцией симметрии, Поэтому положим a2 = 1.

К этому моменту мы получили уже a1 = 0, a2 = 1, a5 = 10. Чтобы получить разность, равную 8, нужно взять

— либо a3 = 2, но тогда разность, равная 1, получается дважды:

a3a2 = a2a1

— либо a4 = 8,

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

Моя на одну ночь

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
5.50
рейтинг книги
Моя на одну ночь

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Измена. Отбор для предателя

Лаврова Алиса
1. Отбор для предателя
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Отбор для предателя

Кодекс Крови. Книга II

Борзых М.
2. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга II

Шаг в бездну

Муравьёв Константин Николаевич
3. Перешагнуть пропасть
Фантастика:
фэнтези
космическая фантастика
7.89
рейтинг книги
Шаг в бездну

Часовая битва

Щерба Наталья Васильевна
6. Часодеи
Детские:
детская фантастика
9.38
рейтинг книги
Часовая битва

Вечная Война. Книга II

Винокуров Юрий
2. Вечная война.
Фантастика:
юмористическая фантастика
космическая фантастика
8.37
рейтинг книги
Вечная Война. Книга II

Хроники странного королевства. Вторжение. (Дилогия)

Панкеева Оксана Петровна
110. В одном томе
Фантастика:
фэнтези
9.38
рейтинг книги
Хроники странного королевства. Вторжение. (Дилогия)

Часовой ключ

Щерба Наталья Васильевна
1. Часодеи
Фантастика:
фэнтези
9.36
рейтинг книги
Часовой ключ

Инвестиго, из медика в маги

Рэд Илья
1. Инвестиго
Фантастика:
фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Инвестиго, из медика в маги

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

Очешуеть! Я - жена дракона?!

Амеличева Елена
Фантастика:
юмористическая фантастика
5.43
рейтинг книги
Очешуеть! Я - жена дракона?!

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9