Иллюстрированный самоучитель по Mathematica 5

Трудные случаи при разложении чисел в цепные дроби

Зачем было только увеличивать количество звеньев до 1747, если не удается вычислить ни двух, ни десяти? А за тем, чтобы показать вам сюрприз. Второе звено я выделил курсивом, кое-что опустил (поставил многоточие), но все равно будьте внимательны.

Иллюстрированный самоучитель по Mathematica 5 › Числа, их представление и операции над ними › Трудные случаи при разложении чисел в цепные дроби

В чем сюрприз? Конечно, не в том, что второе звено содержит 1832 цифры – именно этого мы ожидали, зная, что после запятой следует 1831 нуль. Непостижимо другое: найти 2, 3,…, 1947 звеньев система Mathematica не может, а вот 1948 (и больше) – может!

Давайте обсудим сложившуюся ситуацию. Оказывается, чтобы найти 2-е, 3-е,…, 1947-е звено, нужно, как минимум, найти 1948 звеньев, причем нужно догадаться, что если система Mathematica ругается и говорит, что ей что-то не под силу, то задачу нужно сделать более трудной, и только тогда система Mathematica справится с ней в мгновение ока и к тому же без труда!

Я предпочитаю систему Mathematica, поскольку она помогает мне справиться со многими задачами быстрее, чем другие системы компьютерной алгебры. Но должен отметить, что поведение ее в данном случае интуитивно непонятно, и учесть такую возможность в программе весьма непросто. Конечно, система Mathematica – пример системы с искусственным интеллектом, а поведение таких систем предсказуемо далеко не всегда, как и поведение человека. Иногда ведь и человек может справиться с очень трудной задачей, но не может найти ключ к решению более простой задачи. Тем не менее в данном случае от компьютера хотелось бы более детерминированного результата.

Ну и еще один вопрос: это исключение, не так ли? Можете считать, что да. (Сам поступаю очень часто именно так.) Но тогда приходится признать, что таких исключений очень много. Например, добавляя к числу Пизо целые числа, вы получите серию (теоретически бесконечную) новых исключений. Если вы считаете, что такие исключения связаны с кубическими корнями из числа три, то я вас разочарую. Вот число, которое с виду в несколько раз проще, но в десятки (а может, сотни или тысячи) раз "подлее" с точки зрения функции ContinuedFraction.

x = 1000! + (Sqrt[2] - 1) ^ 10000

Система Mathematica не сможет превратить его в цепную дробь, если вы укажете менее 3667 необходимых звеньев. А если все же указать 3667 звеньев, то тут как раз и окажется, что она может вычислить всего лишь 2613 из заданных 3667.

Иллюстрированный самоучитель по Mathematica 5 › Числа, их представление и операции над ними › Трудные случаи при разложении чисел в цепные дроби

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.