【发布时间】:2021-01-05 16:13:53
【问题描述】:
我正在尝试创建一个程序,它可以在随机的数字中找到multiplicative persistence。然而,这个程序必须处理大量数字(>10233)。然而,当我使用random.randint(10**233, 10**400) 时,我不禁注意到绝大多数数字都包含一个零,这将导致 0 乘法持久性。在我的算法中,我试图通过以下方法摆脱这些数字:
def find_new_i():
i = 10
while "0" in str(i):
i = random.randint(10**233,10**400)
return i
但是,这种方法确实很慢,并且不能很快生成数字。
有人对更有效的方法有任何想法吗?
【问题讨论】:
-
您是否尝试过显式生成不包含任何零的数字(例如,通过组装一串数字 1-9),而不是简单地生成所有值并丢弃其中的“绝大多数”?
标签: python python-3.x performance random integer