Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 비행기 좌석 할당 확률


n명의 승객이 정확히 n개의 좌석이 있는 비행기에 탑승했다고 가정합니다. 첫 번째 승객이 티켓을 분실하고 무작위로 좌석을 선택하는 경우. 그러나 그 후에 나머지 승객들은 이 작업을 따를 것입니다 -

  • 아직 여유가 있는 경우 티켓에 기재된 좌석에 앉으십시오.

  • 다른 좌석이 비어 있는 경우 무작위로 선택

그래서 우리는 n번째 사람이 자신의 자리를 잡을 수 있는 확률을 찾아야 합니다. 따라서 입력이 2이면 출력은 0.5가 됩니다. 따라서 두 번째 사람이 두 번째 자리를 얻을 확률은 0.5입니다(첫 번째 사람이 첫 번째 자리를 차지할 때).

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • n이 1이면 1을 반환하고 그렇지 않으면 0.5를 반환합니다.

예시(C++)

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

class Solution {
public:
   double nthPersonGetsNthSeat(int n) {
      if (n == 1) return 1;
      return 0.5;
   }
};

입력

2

출력

0.50000