编程之战 第一百零五章 握手问题(下)
作者:程序小猿的小说      更新:2019-05-23

  “请您稍安勿躁”,杨成仔仔细细地翻阅总统刚才的握手合照。

  他很快得出了握手的总次数——一共是35次握手。

  那么,怎么根据这个握手次数,计算出参与的最少人数呢?

  杨成细细地一回顾总统说的话。

  总统有提到,在场的任意2个人,最多握了一次手。

  正常情况下,如果要构成一次不重复的握手(相同的两个人握手算作重复),需要2个人。

  3个人可以提供3次不重复的握手。

  4个人可以提供6次不重复的握手。

  .....

  N个人可以提供N乘以(N-1)除以2次不重复的握手。

  这是怎么来的呢?

  1.每个人都可以和除自己以外的人握手,所以有N乘以(N-1)。

  2.之所以要除以2,是因为要去掉重复的,你和我握手跟我和你握手不是一样的嘛。

  有了上面的公式,我们可以推算出:

  8个人可以提供28次不重复的握手。

  9个人可以提供36次不重复的握手。

  而35这个数字正好大于28,小于36。

  所以8个人参与握手是不够的,不足以提供35次握手。

  答案是:至少有9个人参与了握手。

  “总统,有9个人”,杨成报出了答案。

  “小伙子,干得不错!”,总统拍了拍杨成的肩膀。

  “我得让这帮子不知天高地厚的俱乐部人尝尝苦头!”

  “阿历克斯,我没办法给你更多奖励”。

  “但我可以给你一些积分”。

  “叮!当前积分222分,击败了全球50%的玩家,请您再接再厉!”