У моего профессора есть программа, которая берет семена и функцию и рекурсивно выводит и вводит значение оттуда.В рекурсивном цикле, почему это значение меняется?
Основная идея состоит в том, что у вас есть f (x), и вы начинаете с x_0, так что f (x_0) = x_1. Тогда у вас есть x_2 = f (x_1) и так далее, что x_n = f (x_ {n-1}).
В любом случае, иногда вы можете получить такие циклы. Например Пусть F (х) = 2х мод 1.
В программе можно ввести 0,2 и ожидать, что цикл: (0,2, 0,4, 0,3, 0,6, 0,2, ...)
Но в конце концов, его программа делает что-то странное .. вокруг 50-й итерации вы получаете 0.20001, где вы ожидаете 0,2, то из-за этого программа вырывается из цикла и достигает 1, а затем вы получаете все выходы 0 после этого.
Я предполагаю, что это имеет какое-то отношение к тому, как компьютеры приближаются к значениям, но я просто не понимаю, почему он в конечном итоге рассчитает 0.20001 вместо 0,2. Может ли кто-нибудь дать мне техническое объяснение этому?
Плавающая точка часто является приблизительной .... начало здесь http://stackoverflow.com/questions/7644699/floating-point-representation – Ottak