Когда использование операций с плавающей запятой для вычисления потолочного целого числа log2 не удается? ⇐ Python
Когда использование операций с плавающей запятой для вычисления потолочного целого числа log2 не удается?
Мне любопытно, какой первый ввод отличает эти две функции:
из математического импорта * def ilog2_ceil_alt(i: int) -> int: вернуть ячейку (log2 (i)) def ilog2_ceil(i: int) -> int: возврат (i-1).bit_length() ... Я пытался запустить этот тестовый код в течение нескольких минут, но он не вернулся:
... тест проверки (я): если ilog2_ceil(i) != ilog2_ceil_alt(i): вернуть я Защиту основного (начало = 1): импорт многопроцессорности, itertools р = многопроцессорность.Пул() it = p.imap_unordered(test, itertools.count(start), 100) return next (i для i в нем, если я не None) если __name__ == '__main__': я = основной() print("Неудачный случай:", i) Я пробовал тестировать разные большие значения, такие как 2**32 и 2**64 + 9999, но с ними все получилось.
Каково наименьшее (положительное) целое число, для которого функция alt дает сбой?
Мне любопытно, какой первый ввод отличает эти две функции:
из математического импорта * def ilog2_ceil_alt(i: int) -> int: вернуть ячейку (log2 (i)) def ilog2_ceil(i: int) -> int: возврат (i-1).bit_length() ... Я пытался запустить этот тестовый код в течение нескольких минут, но он не вернулся:
... тест проверки (я): если ilog2_ceil(i) != ilog2_ceil_alt(i): вернуть я Защиту основного (начало = 1): импорт многопроцессорности, itertools р = многопроцессорность.Пул() it = p.imap_unordered(test, itertools.count(start), 100) return next (i для i в нем, если я не None) если __name__ == '__main__': я = основной() print("Неудачный случай:", i) Я пробовал тестировать разные большие значения, такие как 2**32 и 2**64 + 9999, но с ними все получилось.
Каково наименьшее (положительное) целое число, для которого функция alt дает сбой?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение