作者GiantPenis (海屌七号)
看板logic
标题Re: [请问] 请问抽签
时间Wed Dec 3 12:37:15 2008
想到演算解法了
假设有十个人,关键在於不能让前九个人形成一个送礼回圈,导致最後一个无解。
要解决这个问题,又要能先後一个个拿走礼物,要建立一条能容许各种组合,
但又能规避这个bug的解法............
解法:
第一条规则,假设有十个人,把人编号一到十,然後准备十张卡片,从一号开始抽,
依序抽到最後一号,抽到自己的号码,则放回去,再抽一次。
[这是第一个规则,跟之前题的解法一样,但现在要加入另一条规则,解决bug]
第二条规则,被一号抽到的那个礼物号码,这礼物的持有人,要最後再抽]
比如,一号抽到五号,那往後就是依照第一条规则,
从2,3,4,6,7,8,9,10,5这顺序抽到完...
加入第二条件後,这演算法就能吻合先後依序送礼完,
且自动排除前九人形成闭回圈的特例...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.205.180
※ 编辑: GiantPenis 来自: 140.116.205.180 (12/03 17:09)
1F:推 ivanos:条件二假设了可公开抽中何者礼物的条件 12/03 20:38
2F:推 ivanos:另外在某些情况下规则二等於强制不得互抽 12/03 20:42
3F:→ ivanos:一楼推文写错,是"规则"二假设了可公开抽中何者礼物的条件 12/03 20:44
4F:→ GiantPenis:规则二并没有限制任何互抽的情况发生~ 12/03 22:26
5F:→ GiantPenis:基本上条件一就已经算可公开了,因为抽到自己时, 12/03 22:27
6F:→ GiantPenis:大家都知道那礼物是谁的了,有没有条件二都一样~ 12/03 22:28