我有一种大脑迷雾试图解决以下结构,也许有人可以帮助解决这个问题。你知道吗
10 11 12 00 11 12 13 01 12 13 14 02 13 14 15 03 14 15 16 04 15 16 17 05
10 11 12 20 11 12 13 21 12 13 14 22 13 14 15 23 14 15 16 24 15 16 17 25
10 11 12 02 11 12 13 03 12 13 14 04 13 14 15 05 14 15 16 06 15 16 17 07
10 11 12 22 11 12 13 23 12 13 14 24 13 14 15 25 14 15 16 26 15 16 17 27
生成此表的算法/循环集是什么样子的?外表的顺序并不重要。四对一捆的东西都应该弹出来。对实际上需要是单个数字,即a 10
是a 1
和a 0
,而不是a ten
!你知道吗
编辑:数字中肯定有规律。但是我没有创建一个合适的循环来“捕捉”模式。你知道吗
第一行中的一个模式是(如果只有这一点可以解决的话,这将有帮助):
x = 1
i = 0
xi x(i+1) x(i+2) (x-1)i x(i+1) x(i+2) x(i+3) (x-1)(i+1) ...
我为这个问题想出了一个有效的算法:)
把它想象成一个表,你需要一行一行地工作,然后一列一列地工作。我使用算法中的列和行来确定数字应该是什么
如果您有什么不明白的地方,请添加评论:)
此代码生成所需的数据作为字符串的三维列表。你知道吗
输出
如果这些对实际上应该是整数对,我们需要一个稍微不同的策略:
输出
下面是第二种解决方案的变体,它使用“传统”for循环,而不是嵌套的列表理解。希望它更容易阅读。:)
内置的^{} 函数对其参数执行除法和模运算,因此当
a
和b
是整数时divmod(a, b)
等价于a // b, a % b
。如果x
是两位数的整数,divmod(x,10)返回一个包含这两位数的元组。你知道吗相关问题 更多 >
编程相关推荐