현재 위치 - 주공해몽공식사이트 - 관음보살의 랜덤 번호 뽑기 - 해적판 금화 프로그래밍

해적판 금화 프로그래밍

제목은 두 사람만 있을 때 4 일에 모든 것을 얻을 수 있다고 설명했다. 그래서 세 명밖에 없을 때, 3 번이 그에게 약간의 이득을 주면, 5 번은 그를 지지하고, 4 번은 반드시 반대할 것이다. 그래서 네 명밖에 없을 때, 4 번은 약간의 지지만 있을 뿐이다. 4 번 지지가 있으면 지나갈 수 있고, 다른 사람들은 모두 좋지 않다. 그래서 처음에는 3 일 5 일에 약간의 이득을 얻으면 모두 지지할 것이다. 그래서 금화를 분리할 수 없다면 98, 3, 5 번은 각각 1 이 될 수 있습니다.

이상은 자연어이다. 프로그래밍 언어를 사용한다면, 분명히 추리할 수 없다. 그것은 빈궁할 수 있을 뿐, 재귀 함수를 사용할 수 있다. 아이디어는 이렇습니다.

전제 조건: 1. 다른 사람에게 주는 것은 1 또는 0 원입니다. 2. 함수 find(a), a) 가 있습니다. 여기서 a 는 나머지를 나타냅니다. 남은 인원수를 판단하고 분배 방안을 제시한 사람의 장점은 무엇입니까? 다음은 룩업 코드입니다.

개인 find(a) 는 정수입니다

Dim b 는 정수입니다

K(a)= 1' 나 자신을 부양할 거야

B=0' 반대자 수

A=5 인 경우

Find= 100

기타

I= 1 4 의 경우

A+I < 그럼 =5

만약 (a+i)> 1 과 (I mod 2 = 1) S 가 무조건 너를 반대한다면 내가 홀수라면 더 많은 이익을 얻을 수 있다.

B=b+ 1

K(a-i)=0

만약 ... 끝날거야

만약 ... 끝날거야

다음으로 저는

Find= 100-b

A= 1 이면

인쇄 "직접 가져 가라."

인쇄 100-b

인쇄 "1 yuan 을 받은 다른 사람:"

I=2 ~ 5 의 경우

K(i)= 1 이면

인쇄 I

만약 ... 끝날거야

다음으로 저는

만약 ... 끝날거야

나는 시도하지 않았다, 문제가 있을 것이다. 。