📜  拼图|揭秘

📅  最后修改于: 2021-04-27 05:03:00             🧑  作者: Mango

问题陈述:一个秘密只能在5分钟内告诉2个人。同一个人告诉另外2个人,依此类推。那么,将一个秘密传播给768个人将花费多长时间?

解决方案:
刚开始时,只有1个人知道此秘密。

  1. 现在,这1个人将在5分钟之内告诉其他2个人披露秘密。 (已知秘密人数= 2,剩余人数= 766人)
  2. 现在,这2个人将在5分钟内告诉其他4个人披露秘密。 (已知秘密人数= 4,剩余人数= 764人)
  3. 现在,这4个人将在5分钟内告诉其他8个人披露秘密。 (已知秘密人数= 8,剩余人数= 760人)
  4. 现在,这8个人将在5分钟内告诉其他16个人披露秘密。 (已知秘密人数= 16,剩余人数= 752人)
  5. 现在,这16个人将在5分钟之内告诉其他32个人披露秘密。 (已知秘密人数= 32,剩余人数= 736人)
  6. 现在,这32个人将在5分钟内告诉64个人其他人透露秘密。 (已知秘密人数= 64,剩余人数= 704人)
  7. 现在,这64个人将在5分钟内告诉128个人。 (已知秘密人数= 128,剩余人数= 640人)
  8. 现在,这128个人将在5分钟之内告诉256个人。 (已知秘密人数= 256,剩余人数= 512人)
  9. 现在,这256个人将在5分钟之内告诉512个人。 (已知秘密人数= 512,剩余人数= 256人)
  10. 现在,由于只剩下256个人知道秘密,因此,这512个人将在2.5分钟内告诉每个人仅向1个人透露秘密,即256个人。 (已知秘密= 768,剩余= 0人)

总耗时= 9 * 5 +1 * 2.5 = 47.5分钟

因此,向768个人披露秘密所需的总时间= 47.5分钟