문제

100(또는 일부라도 수 2N:-))포로에서 방 A.그들은 번호는 1 에서 100 이다.

하나 하나에서(포로 1 위를 죄수#100,기 위해),그들이 될 것입자로 room B 에는 100 개의 상자(에서 번호 1~100)를 기다리고 있습니다.내부(closed)상자에서 번호 1~100(내부의 숫자는 임의로 변경하는!).

일단 내부 방 B,각 포로 얻을 열 50 상자(는 그가 선택하는 한 그는 열립니다).는 경우에는 숫자가 할당하여 그에게서 하나의 이러한 50 개의 상자,죄수를 얻으로 방 C 와 모든 상자가 다시 닫기 전에 다음 하나의 산책로 room B 에서 방 A.그렇지 않으면,모든 수용자는(객실에는 A,B 및 C)가 죽.

하기 전에 입력하는 방 B,포로에 합의할 수 있는 전략(algorithm).방법은 없 통신하는 사실(고 메시지가 없에 남아 있을 수 있습 room B!).

이 있는 알고리즘을 확률을 극대화하는 모든 죄수를 살아?What 확률 않는 알고리즘을 달성하기 위해?

Notes:

  • 을 하는 것들이 무작위로(당신이 무엇을 부르는'전략')참으로 제공의 확률 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 번째 죄,모든 상자에있을 것입 정렬 순서입니다!!!

다른 사람들을 열 수 있는 상자에 포함된 그들의 숫자가 쉽게 다음입니다.

내가 알지 못하는 경우 이은 허용되지만 가장 근사값을 나는 찾을 수 있습니다:

편집:확인이라고 생각합니다.물론 저는 이것으로 컴퓨팅 문제,나는 생각하지 않는 모든 prisioner 을 수행 할 수 있습니다하지만 이것은 매우 정직하면 당신은하지 않습니다.

첫 번째 50 개 소수자 asume 우리는 우리들을 배열에라고 소수.

  • 첫 번째 prissioner 들어가실 B 고 열리면 첫 번째 박스 개수를 찾 m.
  • 기다리는 소수[1]^m(는 것 3^m)
  • 열기 상자 2 을 읽을 수-->n
  • 기(소수[2]^n-1)*소수[1]^m,는 것(5^n-1)*3^m 과하는 총 시간은 그가 기다리고 있다는 것 3^n*5^n

반복합니다.후 첫 번째 prisioner 의 총 시간은 그에게 될 것이다:3^m*5^n*7^p...=X

하기 전에 두 번째 prisioner 들어가실 인수 분해 X.미리 알고 있는 주요 숫자를 사용 되었습니다 그래서 분해가 어렵습니다.그렇게 하면 당신이 얻 m,n,p,등등 그래서 두 번째 prisioner 알고있는 모든 상자/숫자 조합을 이전 prisioner 사용됩니다.

확률의 첫 번째 중 하나를 얻기 모두 죽입니다 1/2,두 번째 하나는 50/(100-n)(되 n 숫자의 attemps 의 첫 번째 중 하나)세 번째로 한 것이가 50/(100-n-m)(n 경우+m=100 모든 위치를 알려진)등입니다.

분명히 다음 prissioner 해를 건너뛰는 이미 알려진 박스(제외하고 마지막 선택하는 경우가 들어 있는 상자의 번호가 이미 알려진)

I don't know what 의 정확한 가능성으로,자는 방법에 대한 많은 선택을 해야 하는지만하게 살아가는 것이 매우 높습니다.

편집:Rereading 경우 prissioner 지 않을 중지해야 할 때 그는 그 얻은 자신의 번호가 다음에 대한 확률이 전체 그룹은 크게 향상,정확히 50%.

EDIT2:@OysterD 이 방법을 참조.는 경우 첫 번째 prisioner 열 수 있습니다 50 상자는 다음 두 번째는 것을 잘 알고 있는 경우 그 수입의에서는 박스입니다.는 경우에 그것은,그는 열 수 있는 다른 49(그리고 그렇게 함으로써 학습자/수 comination 의 100 자)그리고 마지막으로 그의 하나입니다.그렇다면 첫 번째 prissioner succeds 다음 모두 succeds.는 것을 기억하는 prisioner 는 방법을 제공합에 대한 다른 정확히 알고자/숫자 조합을 위해 모든 상 그는 열립니다.

어쩌면 나는 그것을 읽는 오른쪽,하지만 질문이 될 것으로 보인 심하게 건설 또는 정보가 없습니다.

는 경우에는 그가 발견되어 있을 수 있습니다 을 할당하여 그에게서 하나의 이러한 50 자,죄수를 얻으로 방 C 와 모든 상자를 닫 다시기 전에 다음 하나의 산책로 room B 에서 방 A.그렇지 않으면,모든 포로(객실에는 A,B 및 C)얻 사망했다.

마지막 문장에 있다는 것을 의미한 모든 포로 사망의 첫 번째 시간을 포로를 찾는데 실패하는 그들의 수?하지 않을 경우,무슨 일이 발생하는 포로는 찾을 수없는 그들의 수?

지 않으면 통신은,가능한 때마다 죄수를 입력 room 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,다음 전략은 확실히 가능
  • 는 상자에 이전 포로입니다.물론,통신이 가능 실행하고 그것을 가능하지 않고 기억은 어떤 100s 상자를 선택하 있습니다. 하지만 당신은 이 정보를 사용하는 컴퓨팅 시스템에서 실행이 시작됩니다.

내 취:

  1. 그리의 테이블 숫자 2 열,첫 번째 열에 포함 상자 번호(상자에서 1 위를 상#100).각 죄수를 다음 선택하는 50 상자 및 무엇이든 그들이 상자를 선택,그들은 넣어야 1 에 표시를 해당 행에는 두 번째 열에 있습니다.
  2. 모든 포로들은 그러나 필요한지를 선택 상자에 두 번.고 아무 상자에 표시될 수 있습 50.일부 포로 얻을 수 있습니다 적은 옵션은 다른 사람보다 때문에 어떤 상자 얻을 수 있습니다 가득 차 50 마크 처음이다.
  3. 면 죄수는 이동을 방 B/그녀가 열리면 무엇이든 상자를 그가 표시됩니다.

는 경우 모든 포로가 죽을 때 누군가를 찾는데 실패하는 그들의 번호가 다음 중 하나를 저장 100 개 0.방법은 없을 저장하는 30 명.

같은 개념입니다.

Aonther 취:

  1. 목록을 작성의 첫 번째 100 이진수가 오십 1s 및 오 0s.
  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!에 따라 google 에 의하여 2.89*10^-9 이는 거의 전무 그래서 경우에도 수감자들이 알고자 이전에 운이 좋은 사람을 발견에 자신의 번호가 아무 소용이 없을 것을 희망

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top