Моя проблема ограничена целыми числами без знака из 256 бит.
У меня есть значение x
, и мне нужно уменьшить масштаб на коэффициент n / d
, где n < d
.
Простое решение, конечно, x * n / d
, но проблема в том, что x * n
может переполниться.
Я ищу любой арифметический трюк, который может помочь в достижении максимально точного результата.
Разделение каждого из n
и d
на gcd(n, d)
перед вычислением x * n / d
не гарантирует успеха.
Есть ли какой-либо процесс (итеративный или другой), который я могу использовать для решения этой проблемы?
Обратите внимание, что я готов согласиться на неточное решение, но мне нужно иметь возможность оценить ошибку.
uint256
языка (и нет более крупного нативного типа, если вам все еще интересно). - person goodvibration   schedule 25.07.2020