【发布时间】:2023-03-15 18:00:01
【问题描述】:
我想处理带有10k+ 数字的大数字,所以我使用元组,因为不能使用整数类型(数字的精度很重要,因为数字的总和)。只有 2 个唯一数字,9 和 0。
第一个条件:999的位数和取模为0。
第二个条件:是大整数,所以第一个数字不能是0。
最后一个条件:最后一个数字是0。
我的解决办法是:
from itertools import product
L = [10000,11000,12000]
for M in L:
for i in product([0, 9], repeat=M):
if i[0] != 0 and i[-1] == 0:
s = sum(i)
if s % 999 == 0:
print (s)
在这些条件下是否可以计算生成值的数量?是否可以更改解决方案/另一种解决方案以减少生成预期输出的时间,例如只生成带有sum of digits 的数字更像999?我正在考虑Decimal,但这是数字sum 的问题。生成的numbers(元组、数组)的顺序并不重要。
它是如此庞大的元组,所以容易测试有问题。我尝试创建一些示例(不知道是否有用):
for i in product([9, 0], repeat=20):
if i[0] != 0 and i[-1] == 0:
s = sum(i)
if s % 99 == 0:
print (i, s)
【问题讨论】:
-
你能举个例子:输入和预期输出
-
@adnanmuttaleb - 输入为
[0,9]和M列表。但是因为不容易生成大量数字,所以我尝试创建最后一个段落,看看我的意思。
标签: python performance filter tuples product