其他题我不是计算机系的看不懂= =
第三题:首先,应该分为情报的集中和情报的发散两个部分。
第一步应该是用最优的办法把情报集中到一个人身上。
第二步应该是用最优的办法把情报发散到所有人那里。
有人可能说,同时集中和发散不是更划算?当然不是这样,信息集中的时候,最多信息的持有者始终在与其他最多的持有者保持联络进行集中。闲置的人员所有的情报都可以被前者包括,那么他们之间的发散是没有意义的。
不太好表述,意会意会。。。。。
--------------
由于不会编程,所以就用流程图示意一下。。。
--------------
第一步:情报集中所需要的步数i:
![](https://imgsa.baidu.com/forum/w%3D580/sign=e983fe0f59afa40f3cc6ced59b64038c/3676b3160924ab180d58a80a36fae6cd7b890b55.jpg)
注:mod(n,2)表示n除以2的余数。箭头表示赋值。
第二步:情报发散的步数 j:
![](https://imgsa.baidu.com/forum/w%3D580/sign=80a501d48e1001e94e3c1407880e7b06/d46ea98065380cd7b24aead0a244ad3459828143.jpg)
注:int(log2底n)表示对log2底n向下取整。比如log2底6=2.6,则int(log2底n)=2,则j=3
第三步:完成情报交换所需要的总步数:i+j 即可。