就时间复杂度和基本算术运算而言,“真正的大整数”是什么意思

问题描述

我了解到,除非操作数“真的很大”,否则基本算术运算将在固定时间O(1)中执行。因此,我尝试过这样的期望via_str_method在达到某些边界时将更快地执行:

import time
import math

start_time = time.time()


class OddNumbers:

    ODD_ONES = ["1","3","5","7","9"]

    def __init__(self,n):
        assert type(n) == int
        self.n = n
        self.str_n = str(n)

    def via_str_method(self):
        return True if self.str_n[-1] in self.ODD_ONES else False

    def via_mod_method(self):
        return True if self.n % 2 != 0 else False


n = int(math.pow(2,1023))
odd_one = OddNumbers(n)

if odd_one.via_str_method():
    print("Number is ODD")
else:
    print("Number is EVEN")

str_end_time = time.time()
print(f"STR method time: {str_end_time - start_time}")

if odd_one.via_mod_method():
    print("Number is ODD")
else:
    print("Number is EVEN")

print(f"MOD method time: {time.time() - str_end_time}")

但是即使使用2**1023(我认为它已经足够大了),这两种方法仍会在恒定时间内执行。 我想知道是否有人可以向我解释什么是“真正的大整数”,以及如何生成一个并在代码中使用它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)