100(或者有些人甚至数2N:-))囚犯在一室A。它们的编号1至100。

一个接一个(从囚犯#1囚犯#100,为),他们将让我们进入一个房间,B其中100箱(编号1至100)等待他们。内部(关闭)框数从1到100(内部的数字的盒子都是随机序列改变!).

一旦进入室B,每个囚犯被打开箱50(他选择哪一个他打开).如果他发现的数量分配给他的这50个箱子、囚犯步行进入一个房间C和所有箱子都再次关闭之前的下一个走进房B室A。否则,所有囚犯(在客房A、B和C)被杀害。

在进入室B,囚犯可以商定一个战略(算法)。有没有办法之间进行通信的客房(没有信息可以留在室B!).

有一种算法,最大限度地提高的概率,所有囚犯的生存?什么样的的概率不算法实现?

注:

  • 做的东西随机(你说的'没有战略')的确给出了一个概率的1/2中对于每一囚犯,但随后的的概率的所有的人幸存的1/2^100(这是相当低)。一个可以做好多了!

  • 囚犯都是不允许的重新排序的盒子!

  • 所有的囚犯被杀害的第一次一名囚犯没有找到他的号码。 没有沟通是可能的。

  • 提示:一个可以节省30多个囚犯 平均, ,这是很多,(50/100) * (50/99) * [...] * 1

有帮助吗?

解决方案

这个难题是说明在 http://www.math.princeton.edu/~wwong/博客/blog200608191813.shtml 和那个人做一个更好的工作的解释问题。

"所有囚犯被杀害"的声明是错误的。"你可以节省30多于平均水平"也是错误的, 文章 说,30%的时间可以节省100%的囚犯。

其他提示

我找到一个技术含量低的解决这类问题总是最好的路要走。

第一,我们作出一些假设有关的情况

  • 囚犯是不是所有的程序或数学家
  • 他们不想要死
  • 警卫都武装好了

因此,与一0.005%的机会,他们会看到明天,有一个非常简单和低技术的解决这个问题。 暴乱

它的所有有关的损失v潜在收益,机会是囚犯远了数目的警卫,并使用每一个其他作为人盾,因为它们都是死人无论如何,如果他们不这样做,他们可以增加的机会,他们将权力移交的保护,一旦他们有他的武器有机会就会上升,帮助他们的权力更多的警卫获得更多的火力,以进一步增加有存活率。一旦警卫意识到发生了什么,他们可能会运行的山丘和锁下的监狱,这将会给媒体抬头,随后其人权的问题。

实施一个排序的算法和分类的盒子根据内部的数字。

第一囚犯的种种50箱,而第二囚犯的种种其他50和融合的第一个。(注意,第二个囚犯可以猜测的价值观的内部第一个50箱)

之后第2次囚犯,所有的箱子将是在一个排了!!!

其他人都可以打开箱含有他们的号码很容易。

我不知道如果这是允许的,但最好的逼近我可以找到的是:

编辑:好吧,我觉得这使得它。我当然是在治疗这个作为计算问题,我不认为任何战俘将能够执行此,虽然是相当直截了当,如果你没有。

找到的第一个50素,让我们asume我们保持他们在一系列称为素数。

  • 第一prissioner进入室B和打开第一个框中,发现数米。
  • 等待素数[1]^m(即将3^m)
  • 打开箱2和阅读的人数-->n
  • 等(素[2]^n-1)*素数[1]^m,这将是(5^n-1)*的3^m和总时间,他已在等待将3^n*5^n

重复。之后的第一个战俘的总时间为他将是:3^m*5^n*7^p...=X

前二战俘进入房间的因式分解X你事先知道总理的数字,已使用的因式分解是微不足道的。这样做你得到m、n,p等的第二个战俘知道每一个盒子/数字组合以前的战俘使用。

该概率的第一个得到每个人都杀是1/2,第二个将有50/(100-n)(n号码的尝试的第一个)的第三人会有50/(100-n-m)(如果n+m=100,然后所有职位都已知)等。

显然,下一prissioner必须跳已经知道箱子(除了最后的选择,如果框其中含有他的号码已经是已知的)

我不知道什么是确切的可能性,因为它dependes如何许多的选择,他们需要做的但是我会说这是很高的。

编辑:重读,如果prissioner没有停止的时候他得到他的号码然后概率为整个组是大大提高,完全是50%。

EDIT2:@OysterD看到它这样。如果第一个战俘可以打开50箱然后第二一一个知道如果其数量在任何箱子。如果是,那么他就可以开放其他49(和通过这样做的学习框/数comination的100箱)和最后开他的一个。因此,如果第一prissioner succeds然后每个人都succeds.记住,每个战俘提供了一种方法的其他准确地知道箱子/数组合对每一个框他打开。

也许我不读是正确的,但问题似乎是严重建或丢失的信息。

如果他发现号 分配给他的这50 盒子,囚犯步行进入 一个房间C和所有箱子都关闭 再下一个走进 B间从室A。否则,所有 囚犯(在客房A、B和C)获取 杀害。

不会的最后一句话有意思,所有的囚犯被杀害的第一时间的囚犯无法找到他们的号码?如果不能,会发生什么囚犯没有找到他们的号码?

如果没有沟通是可能的,并且只要一名囚犯进入室B它总是处在一个相同的国家则没有任何可能为一个战略。

囚犯可以说在他们离开房间这些箱子他们会打开。但是没有后续囚犯知道他们是否成功与否(假设的失败一个不是故障的所有)在下一个囚犯进入室B,他们仍有相同的赔率的挑选它们的数量如以前的囚犯(总是1:100).

如果失败为一种是失败,那么由知道这盒之前的囚犯打开,并凭借这一事实,他们没有被杀死,每个连续的囚犯可以减少胜算的选择了错误的框通过一个盒子里。即1:100第一囚犯,1:99二,下降到1:1。

囚犯可以同意的囚犯,1开放式框1到50个。

如果他们是所有依然活着,他们同意,下一个囚犯打开了盒2-51.(2是任意的,但简要记住这条规则),他的赔率一幸存的 鉴于P1幸存下来 现在50/99.你想要消除打开盒子的时候,你知道以前那家伙找到他的。

我不知道如果这是最佳的,但是它的很多优于随意。

该概率的存活看起来像

50/100 * 50/99 * 50/98 *. . .50/51 * 1

我认为,由于没有沟通是可能的,更好的战略将涉及

分发的概率为每个囚犯尽可能平均地

我在正确的道路,或不?

信息可用于每个犯人:

  • 数survivied囚犯,所以如果你有一个有效的框挑选系统,该系统利用了任何囚犯进入室B,然后 一个策略绝对是可能的
  • 这盒子的先前犯人挑选。当然,没有通信是可能的 的运行和这不可能记得的任何100箱拿置换。 但是你可以使用这些信息来计算的系统 之前 运行开始。

我采取:

  1. 绘制表的数字与2列,第一栏载列的框号(从盒子#1的框#100).每个囚犯,然后被挑选的50箱子不管框他们挑选的,他们应该把1标上相应的行在第二栏中。
  2. 所有囚犯,但是需要从来没有选择任何箱子的两倍。并没有箱子可能被标记超过50。一些囚犯可以得到更少的选项比其他人因为一些盒子可以得到填补50标志着第一次。
  3. 当囚犯被转移到B间,他/她将打开任何框他有标记。

如果所有的囚犯被杀害时的人无法找到他们的人数那么你要么节省100或0.有没有办法来救30人。

相同的概念。

Aonther采取:

  1. 写下列表的第一个100的二进制数字,其中有五十1和五十0。
  2. 它们进行排序,从最低到最高的。
  3. 囚犯#1获得第一个数字,囚犯#2会第二,囚犯#3获得第三等等...
  4. 每个囚犯还记得他/她的二进制数字。
  5. 当任何囚犯被转移到B间,他/她则相匹配的二进制数字的数字,他记得与每个盒子中,最高点相匹配的最左边的箱,下一个最高点相匹配的第二左边的箱子...最低点相匹配的右边的框。
  6. 他/她将打开任何箱子搭配1和离开的封闭箱子搭配0.

这将减少概率因为初期的囚犯会获得的数字不同,从后来的囚犯和囚犯其中有些紧靠在一起会得到数字接近在一起。这并不能保证生存能力,但如果将初犯人生存下来的机会是后来的囚犯将有一个更高的概率的生存。

我还没有想出来的确切的数字和理由,虽然,但这是一个快速的解决方案,我可以想想的时刻。

没有任何时间限制的问题,所以我建议,囚犯应该决定采用1小时,每箱和开放它们的顺序提出的。如果第二囚犯被允许进入房间的2小时后然后他知道,第一个囚犯发现了他自己的数量在方框2内。因此,他知道要跳框2在他的序列,并打开盒第1、3、4...51 第一囚犯的机率上的损失是50/100 得到的第一个囚犯幸存下来然后第二名囚犯获胜的机会是50/99 所以答案似乎是((50 ^51)*49!)/100!它根据谷歌让2.89*10^-9 这几乎是零 因此,即使在囚犯知道这个盒子的先幸运的找到他们的人数在不会有希望

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top