Всем привет.
Продолжаем выпускать видеоуроки )
Сегодня записал небольшой видеоурок по решению упражнения N1.37 из SICP ("Структура и интерпретация компьютерных программ" Абельсона и сотоварищи) на тему вычисления конечной цепной дроби.
Сначала вкратце рассказываю, что такое бесконечная и конечная цепная дробь, каким образом с помощью неё можно вычислить коэффициент золотого сечения theta, а затем привожу решение задания на хаскеле - привести 2 варианта реализации функции вычисления конечной цепной дроби, порождающие рекурсивный и итеративный процессы,
и определить минимальное количество членов конечной цепной дроби, которая даст точность нахождения коэффициента золотого сечения в 4 знака после запятой.
Снова в видео есть некоторые огрехи, но зато они придают определенную живость повествованию ) Само видео, залитое на ютьюб, ниже:
Надеюсь, что кому-нибудь это видео пригодится )
Тут уже мне знающие люди в жаббер отписали, что
ОтветитьУдалитьперед сравнением двух чисел с точностью до некоторого знака после запятой сначала необходимо их округлять до этого же знака по правилам математики, а уж затем сравнивать. "Небольшая" такая деталь ) В общем, правильный ответ - требуется таки 13, а не 12 членов конечной цепной дроби. Ибо theta(12) = 1.618055.. после округления до 4 знаков после запятой дает 1.6181, что разумеется еще не может быть приравнено к оригинальному значению коэффициента золотого сечения 1.6180. theta(13) же дает уже 1.618025.., что после округления даст требуемые 1.6180. Ну, вы поняли, надеюсь )