Программирование игр и головоломок
Шрифт:
Здесь обо всем этом речь не идет. Я предлагаю вам только взглянуть на путь, использованный для доказательства с помощью компьютера знаменитой проблемы четырех красок: любая географическая карта может быть раскрашена четырьмя красками так, что любые две территории, имеющие общую границу, раскрашены, разными красками. Общая идея состоит в том, чтобы доказать вручную или, в случае необходимости, с помощью программы, что проблема будет решена полностью, если будет известно ее решение в некотором конечном числе случаев. Эти случаи исследуются на компьютере. Вот примеры, доступные этому методу.
Внимание: вы должны бороться с проблемой сложности.
Головоломка 12. Теорема 153.
Этот пример заимствован из [MJB]. Образуем числовую последовательность следующим образом:
— начальный элемент — произвольное натуральное число, кратное трем,
— за любым элементом последовательности следует число, равное сумме кубов всех цифр данного элемента.
Теорема. Любая такая последовательность становится (начиная с некоторого места) постоянной, равной 153.
Пример. Начнем с 33:
33
3^3 + 3^3 = 54
5^3 + 4^3 = 189
1^3 + 8^3 + 9^3 = 1242
1^3 + 2^3 + 4^3 + 2^3 = 81
8^3 + 1^3 = 153
1^3 + 5^3 + З^3 = 153
1^3 + 5^3 + З^3 = 153
и теперь последовательность стала постоянной.
Используйте ваш компьютер для доказательства этой теоремы.
? Головоломка 13. Варианты.
Нелегко сказать, какую роль в предыдущей теореме играет то, что исходное число кратно трем. Но от вас не потребует чрезмерных усилий в общем случае, что два последовательных числа последовательности имеют равные остатки при делении их на 3. В последовательностях, которые мы стали изучать, все члены последовательности делятся на 3. Можно доказать также, что все члены последовательности, кроме, быть может, первого, делятся на 9.
Если взять натуральное число, не кратное трем, то все члены соответствующей последовательности будут иметь один и тот же остаток при делении на 3. Что, кроме этого, вы можете узнать о поведении этих последовательностей?
Если при переходе к следующему члену последовательности вы будете брать сумму квадратов цифр (вместо того, чтобы брать сумму кубов), то все будет не намного лучше. Можете ли вы доказать следующую теорему: каково бы ни было натуральное число, взятое в качестве первого элемента последовательности, эта последовательность содержит число, не превосходящее 4?
? Головоломка 14. Теорема 6174. Построим последовательность натуральных чисел следующим образом. Начальный элемент — натуральное число с четырьмя цифрами, которые не все равны между собой. Мы переходим от данного члена последовательности к следующему но такому правилу.
Пусть a, b, c, d — четыре цифры, представляющие десятичную запись данного числа. Расположим
Теорема. Эта последовательность для любого начального элемента становится (начиная с некоторого места) постоянной, равной 6174.
Пример. Начнем с 7815:
8751 - 1578 = 7173
7731 - 1377 = 6354
6543 - 3456 = 3087
8730 - 0378 = 8352
8532 - 2385 = 6174
6174 - 1467 = 6174
Используйте ваш компьютер для доказательства этой теоремы. Это окажется намного проще, чем в предыдущей головоломке, поскольку имеется всего лишь 9000 чисел с четырьмя цифрами, и нужно исследовать 9000 последовательностей. Но вы можете сделать число испытаний намного меньше этого…
?? Головоломка 15. Господин S и господин P [7] .
Вот одна из наиболее классических арифметических головоломок. Выберем два натуральных числа, больших единицы, но меньших ста. Значение их суммы сообщено господину S, значение их произведения — господину P. Ни один из них не знает, какое число сообщено другому. Господин P звонит господину S по телефону.
7
S — первая буква слова «somme» (фр. сумма), P — слова «produit» (фр. произведение). — Примеч. ред.
P. Я не могу найти эти два числа.
S. Я знаю, что вам это и не удалось бы.
P. Ах, так… Но тогда я их знаю!
S. Ну, тогда и я тоже их знаю!
Рассуждение позволяет существенно видоизменить задачу, и даже более того — предъявить решение. Много ли их? Используйте ваш компьютер, чтобы их найти.
Простые числа
??** Головоломка 16. Чемпион головоломок.
На мой взгляд, наиболее замечательная арифметическая головоломка, над которой мне пришлось особенно долго работать и которая дала мне возможность получить некоторые удовлетворительные результаты, — это, конечно, проблема простых чисел. Пусть дано число n (конечно, нечетное) и достаточно большое; сказать, является ли оно простым и, если можно, дать его разложение на простые множители.
Если не предполагать, что n велико, то есть простой способ действовать: делить n на простые числа и смотреть, удается ли деление без остатка. Если да, то число составное и допускает разложение в произведение. Впрочем, при таком методе многие делители можно вообще не рассматривать. Если n есть произведение двух сомножителей p и q: