小张编程的想法为:将每个砝码看作不同的,即使质量一样也看成不同。小张所拥有的砝码数可以看作9个,对于每个砝码有可能被使用或不使用,因此砝码质量组合最多29种。小张从质量小的砝码开始尝试:先拿一个1g的砝码放入,这时出现第1种质量,将其记录。然后拿走1g砝码,将第1个2g砝码放入,这时出现第2种质量……。如果当前砝码组合的质量是前面产生质量+1,则记录当前组合质量;如果当前砝码组合的质量没有产生过且当前组合质量超过前面产生质量+1,则终止当前程序。具体砝码组合见下表所示:

(1)对于上表中各砝码的选择状态为111000000,则下一种选择状态为:
(2)具体代码如下,运行结果如下图示,在划线处填入合适代码。

def selct(f,n):#找出一种砝码的组合
i=0
while①
f[i]=0
i+=1
f[i]=1#选中第i种砝码
return f
weight=[1,2,2,5,10,20,20,50,50]#砝码
unweight=[]#记录砝码组合质量
n=len(weight)#砝码种数
f=[0]*n #记录砝码是否被取
for i in range(2**n-1):
f=②
w=0
for j in range(n):#依据选择状态,计算砝码质量
w+=③
#将不同质量的组合存入unweight列表
if len(unweight)==0:
unweight.append(w)#append()为列表添加元素
elif w not in unweight and w==unweight[-1]+1:
unweight.append(w)
elif w not in unweight:
break
print(“最多能称出”,len(unweight),“不同质量”)
print(“质量范围:”,unweight[0],“____”,④

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

