четверг, 22 сентября 2011 г.

Как дробные числа в целые превращались.

Не для кого не секрет, что математические операции с целыми числами более быстрее, чем с вещественными числами, т.е. использовать int быстрее, чем float, double и т.д.

Недавно увидел такой подход в программировании. Для более быстрых вычисление вещественные числа переводили в целые и уже работали с ними, а потом для получения требуемого результата опять преобразовывали обратно.

Идею этого подхода можно наглядно показать на примере квантования.
В общем виде квантование это процедура построения чего-либо с помощью дискретного набора величин, например, целых чисел, в отличие от построения с помощью непрерывного набора величин, например, вещественных чисел.

Проще говоря: у нас есть исходное число (T = 3.5), мы выбираем минимальное число, которым будим дробить (измерять) исходное число (h=0.1). Теперь преобразуем исходное число в новое целое число, используя минимальное число (i=T/h=3.5/0.1=35).

Все это очень похоже на подход из вычислительной математике, где используется вычислительная сетка с определенным шагом (минимальное число).

Основной минус бросается в глаза сразу, если h=0.3, а T=3.5, то i = 11.666, что не соответствует тому, о чем мы говорили выше. Выбираете h, как степень 10 (10^(-1) = 0.1 и т.д.).

Вот такой интересный подход. Говорят, что это позволило избавиться от многих ошибок с округлением. =)

Спасибо за внимание. 

1 комментарий:

  1. The best casino games - JTG Hub
    From 파주 출장안마 roulette to blackjack, the 안성 출장마사지 best casino games at JTG Hub are now available, but how 구미 출장안마 are they changing over the years? Our 아산 출장샵 game 김천 출장샵 designer can help you

    ОтветитьУдалить