Форум сайта python.su
186
> это костыль - количество шагов у тебя может быть больше 10
В некоторых случаях может и привысить 10, но сходимость будет для любого числа из указанного диапазона.
Офлайн
py.user.nextэто стандартный алгоритм для АЦП последовательног приближения - на шкале в 2**N за N шагов получить значение с точностью 1 МЗР. я уж не помню всю теорию но там в основе ряд N,N/2,N/4…
От медианы можно взять любое из соседних целых чисел (они равноудалены от неё).
>>> def f(n): out = [] while n: out.append(n) n >>= 1 return out >>> N = f(2**10) >>> N [1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1] >>> N[0] - sum(N[1:]) 1 #ряд сходится равномерно, ошибка 1 МЗР >>> N = f(1000) >>> N [1000, 500, 250, 125, 62, 31, 15, 7, 3, 1] >>> N[0] - sum(N[1:]) 6 #ряд не сходится равномерно, ошибка 6 МЗР >>> N = f(2**10 -1) >>> N [1023, 511, 255, 127, 63, 31, 15, 7, 3, 1] >>> N[0] - sum(N[1:]) 10 #ошибка 10 МЗР >>>
Отредактировано vic57 (Окт. 29, 2017 02:02:21)
Офлайн
py.user.nextв машине есть байты и биты, питон - это абстракция
Так в питоне-то дробные числа есть, это в АЦП всё на целых числах.
Офлайн
857
vic57Так в питоне-то дробные числа есть, это в АЦП всё на целых числах.
на шкале в 2**N за N шагов получить значение с точностью 1 МЗР
Отредактировано py.user.next (Окт. 29, 2017 03:51:56)
Офлайн
857
vic57Это целые числа.
в машине есть байты и биты
Офлайн