早教吧 育儿知识 作业答案 考试题库 百科 知识分享

A从1到1024中任选一个整数,然后B问A10个问题,A只需答是或不是,这样B就能知道A选的数是什么,

题目详情
A从1到1024中任选一个整数,然后B问A10个问题,A只需答是或不是,这样B就能知道A选的数是什么,
▼优质解答
答案和解析
1024是2的10次方,只要用折半法就可以找出.
问的问题是:这个是大于(小于)n的吗?【n为一个1到1024的整数】
下面是从1到一个2的几次方的数,需要问的问题数
1是2^0,0个
2是2^1,1个
4是2^2,2个
8是2^3,3个
……
1024是2^10,10个
假设A选了149:
现在范围是1~1024,中间数是512
--①这个数是大于512的吗?--不是.
现在范围是1~512,中间数是256
--②这个数是大于256的吗?--不是.
现在范围是1~256,中间数是128
--③这个数是大于128的吗?--是.
现在范围是128~256,中间数是192
--④这个数是大于192的吗?--不是.
现在范围是128~192,中间数是160
--⑤这个数是大于160的吗?--不是.
现在范围是128~160,中间数是144
--⑥这个数是大于144的吗?--是.
现在范围是144~160,中间数是152
--⑦这个数是大于152的吗?--不是.
现在范围是144~152,中间数是148
--⑧这个数是大于148的吗?--是.
现在范围是148~152,中间数是150
--⑨这个数是大于150的吗?--不是.
现在范围是148~150,中间只有一个数,是149
--⑩这个数是149吗?--是.
找到了!
有时不用问10个问题就能知道,最多问10个.