'F' -> 'F' X' -> "X+YF+" у "-FX-Y" atom-TX" инструкции для «дракона»
9.3. Создание строк и кривые Пеано Здесь символ Т' просто воспроизводит сам себя, в то время как символ 'X' создает строку из пяти символов, содержащую различные комбинации символов Т', 'X'. 'У, '+'.
Используя в качестве атома ТХ", мы получим для строки 1-го порядка строку ТХ+УР+", а строка 2-го порядка имеет вид:
52=РХ+УР++-РХ-УР+
(Как выглядит строка 3-го порядка? Что будет, если в качестве атома использовать Т'?)
Следует указать также, как черепаха интерпретирует для рисования новые символы. Эта инструкция заключается в том, что любые символы 'X' и 'У игнорируются, в то время как символы Т' и '+ интерпретируются как прежде.
Что же касается инструкций для дракона, то черепаха рисует дракон 1-го порядка, игнорируя символы 'X' и 'У в строке "РХ+УР+", и реагирует только на строку 'Т+Р+", поэтому полученная кривая состоит из двух отрезков прямой, образующих «колено» с углом А. (Чаще всего используется угол в 90°.) Для дракона 2-го порядка черепаха реагирует на строку Т^-н-Р-рь" или эквивалентную ей 'Т+Р+Р-Р+", которая образует два колена с изменением направления: Т+Р", затем Т-Р". На рис. 9.6, а изображен дракон 3-го порядка, а дракон 2-го порядка показан на рисунке пунктиром. На рис. 9.6, б приведен дракон 12-го порядка.
Рис. 9.6. Дракон 3-го порядка (а); дракон 12-го порядка (б)
9.3.1. Рекурсивная генерация строк и рисование в программе Математика - это единственная бесконечная человеческая деятельность. Возможно, со временем человечество узнает все о физике и биологии. Однако ему никогда не узнать все о математике, поскольку сам ее предмет бесконечен. Бесконечны сами числа.
Поль Эрдо (Paul Erdos)
Вместо того чтобы сохранять в файлах строки, сгенерированные подпрограммой produceStringO, можно реорганизовать эту подпрограмму для рекурсивной работы - так, чтобы она создавала эти строки на ходу и непосредственно управляла черепахой.