丢番图方程
Diophantine Equation
以数字 (n) 作为参数,returns 是四个数字的元组;卖n块需要的总包数、6块包数、9块包数和20块包数。如果无法组合金块,那么它 return 是一个包含四个零的元组,即 (0,0,0,0)。
请注意,给定的 n 可以有多个解决方案,那么您的解决方案应确保在使用较大的包之前使用较小的包。例如,buy_nuggets(18) 应该 return (3,3,0,0) 而不是 (2,0,2,0),即 3 盒 6 块金块超过 2 盒九张
该函数有输入格式整数(n)和限制-10^6<=a,b,c,n<=10^6
输出格式将是 4 个数字 (d,a,b,c) 的元组,其中
d = 包裹总数
a - 6 个包裹的数量
b - 9 包的数量
c - 20
的包裹数量
任何帮助都将是巨大的,谢谢。
def nugget_boxes(n):
def extended_nuggets(m,n):
assert m>=n and n>=0 and m+n>0
if n==0:
d,x,y= m,1,0
else:
(d,p,q)=extended_gcd(n,m%n)
x=q
y=p-x*(m//n)
assert m%d==0 and n%d==0
assert d==m*x + n*y
return(d,x,y)
def diophantine(a,b,c,d):
if a>b and c and d:
q=extended_nuggets(a,b,c,d)
a1=q[1]
b1=q[2]
c1=q[3]
d1=q[4]
if b>a and c and d:
q=extended_nuggets(a,b,c,d)
a1=q[2]
b1=q[1]
c1=q[3]
d1=q[4]
if c>a and b and d:
q=extended_nuggets(a,b,c,d)
a1=q[3]
b1=q[1]
c1=q[2]
d1=q[4]
else:
q=extended_nuggets(a,b,c,d)
a1=q[4]
b1=q[1]
c1=q[2]
d1=q[3]
assert c%q[0]==0
d=q[0]
p=c/d
return nugget_boxes(int(p*x1),int(p*y1), int(p*z1))
这个功能return没什么,我在网站上找不到任何有用的东西
不知道我说的对不对,我想你需要调用函数才能看到输出?
以数字 (n) 作为参数,returns 是四个数字的元组;卖n块需要的总包数、6块包数、9块包数和20块包数。如果无法组合金块,那么它 return 是一个包含四个零的元组,即 (0,0,0,0)。
请注意,给定的 n 可以有多个解决方案,那么您的解决方案应确保在使用较大的包之前使用较小的包。例如,buy_nuggets(18) 应该 return (3,3,0,0) 而不是 (2,0,2,0),即 3 盒 6 块金块超过 2 盒九张
该函数有输入格式整数(n)和限制-10^6<=a,b,c,n<=10^6
输出格式将是 4 个数字 (d,a,b,c) 的元组,其中
d = 包裹总数
a - 6 个包裹的数量
b - 9 包的数量
c - 20
任何帮助都将是巨大的,谢谢。
def nugget_boxes(n):
def extended_nuggets(m,n):
assert m>=n and n>=0 and m+n>0
if n==0:
d,x,y= m,1,0
else:
(d,p,q)=extended_gcd(n,m%n)
x=q
y=p-x*(m//n)
assert m%d==0 and n%d==0
assert d==m*x + n*y
return(d,x,y)
def diophantine(a,b,c,d):
if a>b and c and d:
q=extended_nuggets(a,b,c,d)
a1=q[1]
b1=q[2]
c1=q[3]
d1=q[4]
if b>a and c and d:
q=extended_nuggets(a,b,c,d)
a1=q[2]
b1=q[1]
c1=q[3]
d1=q[4]
if c>a and b and d:
q=extended_nuggets(a,b,c,d)
a1=q[3]
b1=q[1]
c1=q[2]
d1=q[4]
else:
q=extended_nuggets(a,b,c,d)
a1=q[4]
b1=q[1]
c1=q[2]
d1=q[3]
assert c%q[0]==0
d=q[0]
p=c/d
return nugget_boxes(int(p*x1),int(p*y1), int(p*z1))
这个功能return没什么,我在网站上找不到任何有用的东西
不知道我说的对不对,我想你需要调用函数才能看到输出?