|
lastwinner 发表于 2012-5-18 01:29 ![]()
跑得好辛苦啊,呵呵,我突然有找出推广到n时的最佳方式并证明之的思路了。整理一下思路马上写出来
对于n人,最佳方式的通话次数肯定不会超过这种策略:先让两人知晓所有的,然后剩下的人都与这两人通话来获知所有的消息。
在这种策略里,要让两人知晓所有的消息,需通话的总次数为n-1次,此时有2人知晓了所有消息,必然还有2人知晓了完全互补的消息,这2人再通话一次,便可获知所有的消息,而对于剩下的人,由于两两都无法做到完全互补,根据我166楼的思想,两两若不能完全互补,倒不如直接跟知晓所有信息的人直接通话。虽然166楼里没有完全肯定,但现在可以肯定了,因为n个人通过n-1次通话只能让两个人知晓所有信息,当n越大,投入产出比就显得越寒碜,当已经有人知晓了所有信息,并且剩余人知晓的信息都不能做到完全互补,那么他们直接与已知晓所有信息的人直接通话,仅1次就可以知道所有信息,还节省电话费,何乐而不为?于是乎,我们就得出了n个人知晓所有信息所需要的最少通话次数f(n)的表达式(n>=2):
f(n)=
{
1, n=2
n, n in (3,4)
2*n-4, n>=5
}
上面推理的过程也证明了这就是最少的次数。
|
|