128-битное Java-умножение и деление – существует ли эффективный алгоритм? [дубликат]JAVA

Программисты JAVA общаются здесь
Anonymous
128-битное Java-умножение и деление – существует ли эффективный алгоритм? [дубликат]

Сообщение Anonymous »

У меня есть очень специфический алгоритм, который требует выполнения множества вычислений (a * b)/c в Java, где:
  • и b имеют длину 64 бита.
  • может переполниться до 128 бит (не всегда, но, по крайней мере, достаточно часто)
  • имеет длину 64 бита.
  • Результат (a * b)/c должен умещаться в 64-битном формате.
  • Нам нужно определить, не происходит ли переполнение, но результат в этом случае не имеет значения.
Существует ли для этого эффективный высокопроизводительный алгоритм своего рода объединенное умножение и деление, такое что:
  • Нет выделения памяти (например, построение BigInteger не разрешено).
  • Он использует только простые/быстрые операции процессора
  • Выдает точные целочисленные результаты
  • Он работает в O(1)
  • Он работает в O(1) пробел (без рекурсии и т. д.)


Подробнее здесь: https://stackoverflow.com/questions/635 ... -algorithm

Вернуться в «JAVA»