gpt4 book ai didi

python - 生成 3 个数字,其总和为 n

转载 作者:行者123 更新时间:2023-11-28 21:50:53 25 4
gpt4 key购买 nike

我需要生成三个自然数,其总和为n。第一个数字可以是最大值 x,第二个数字可以是最大值 y,最后一个数字可以是最大值 z。目前我正在做这个

def f(n):
return [(i, j, k)
for i in range(x+1)
for j in range(y+1)
for k in range(z+1)
if i + j + k == n]

但是n很大,500左右,x,y,z小于200。目前我有3个变量(i, j, k) 从 3 个范围生成。这可以在列表理解中使用两个循环来完成吗?

最佳答案

是的,

您可以只计算第三个数字并检查它是否在正确的范围内 (Martijn Pieters♦)。

[(i, j, n - i - j) for i in range(x+1) for j in range(y+1) if 0 <= n - i - j <= z]

关于python - 生成 3 个数字,其总和为 n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31337478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com