学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
有100个大小形状一样的玻璃球,其中有1个玻璃球的重量轻于其他99个玻璃球,如何用一台无砝码的天平,以最快的速度找出这个轻玻璃球?运用“三分筛选”法来模拟“寻找”这个轻玻璃球的算法如下:
步骤1:如果待筛选的玻璃球个数<3,则认定已经找出了这个玻璃球(认定方法参照步骤2中描述),停止筛选,并输出经过的筛选总次数;否则,重复执行步骤2。
步骤2:按编号依次将玻璃球均分成3份,如果有多余的放入第3份中;比较第1、2份的玻璃球重量:
①如果第1份等于第2份的重量,则选取第3份的玻璃球作为下一次筛选的对象;
②如果第1份小于第2份的重量,则选取第1份的玻璃球作为下一次筛选的对象;
③如果第1份大于第2份的重量,则选取第2份的玻璃球作为下一次筛选的对象。重复执行步骤1。
例如:第1次筛选的小球编号区间是1~100,均分成三份的待称重小球编号分别是1~33、34~66、67~100;第2次则选取以上3份中的一份进行再筛选、再均分、……直至找到。解决上述问题的VB程序功能如下:运行程序,在列表框Listl中显示100组数据,分别代表每个编号及对应的小球重量(其中有且只有一个小球的重量与其他小球不同),单击“筛选”按钮Command1后,在列表框List2中显示每次筛选的编号区间和完成筛选的总次数。程序运行界面如图。
                    
(1)如果编号为88的小球是最轻的,那么按照题中给定算法,找到此小球需经历的筛选次数是_____次。
(2)实现上述功能的VB程序如下,请在横线处填入合适的代码。
Const maxn=100
Dim a(1 To maxn) As Integer
Dim w(1 To 2) As Integer'数组w用来存储第1份和第2份小球的重量
Private Sub Form_Load()
'此处代码用来模拟产生100个小球的重量,分别存储在数组元素a(1)~a(100)中
'其中只有1个小球的重量为8,随机存储在数组a的某元素中,其余重量均为10
'此处代码略
End Sub
Private Sub Commandl_Click()

Dim left As Integer,right As Integer'left为起始编号,

right为结束编号

Dim s As Integer, c As Integer's为每次查找的区间长度

left=1:right=maxn

c=1:s=right:i=0

List2.AddItem Str(i+1)+"--->"+Str(maxn)

Do While right-left>3

w(1)=0:w(2)=0:k=1
i=left
s=①_______
Do While i<=(s\3)* 2+left-1 'Do语句用于将待筛选的数据进行区域划分
w(k)= w(k)+a(i)
If i=(sI 3)*k+left-1 Then k=k+1
i=i+1
Loop
If w(1)=w(2) Then
left=left+(s\3)*2
Elself w(1)<w(2) Then
②_________
Else
right=left+(s\3)*2-1
left=s\3+left
End If
③____
List2. Addltem Str(left)&"--->"&Str(right)

Loop

List2. AddItem"经过"+Str(c)+"次后找到"

End Sub
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

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

用户名称
2019-09-19

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

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交