본문으로 바로가기

영재원 과제 / 5월달

category 프로그래밍 2018. 7. 13. 00:13

간단한 설명

 : 철수, 로봇, 영희가 있고, 로봇의 임의의 값을 내면 영희는 로봇의 값을 알고 있다. 그러나 철수는 알지 못한다.

철수, 로봇, 영희 모두 같은 패를 내면 게임에서 승리한다.

 

  문제의 정의

    ( 1 ) 철수와 영희가 무작위로 낼 때 승률

 ( 2 ) 철수 = 영희일 때의 승률

 ( 3 ) 영희가 로봇의 Code 값을 알 때의 손해를 보지 않는 방법

 


 

  알고리즘

 

 영희가 로봇이 이후 낼 3가지의 경우를 보고 더 많은 경우를 출력, 철수가 이를 따라간다.

 

> 승률이 50%를 넘긴다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
 
int i;
int robot[15]={0};
int Young[15]={0};
int Chul[15]={0};
 
int first_player(){
 
             for(i=0;i<9;i++){
                           if(i==|| i==|| i==6)
 
                                        if(robot[i+1+ robot[i+2+ robot[i+3> )
               Young[i]=1;
 
                                        else
                                        Young[i]=0;
                           }
}
int second_player(){
 
             for(i=0;i<9;i++){   
 
                           if(i==|| (i)%3==0){
 
                                        Chul[i+1= Young [i];
              Chul[i+2= Young [i];
               Chul[i+3= Young [i];
                           }
             }
}
int main(){
 
             srand(time(NULL));
 
             for(i=0;i<9;i++){
 robot[i]=rand()%2;
        Young[i]=robot[i];
}           
             first_player();
             second_player();
 
             for( i=0; i<9; i++){
 
                          
 
                           cout<<robot[i]<<" "<<Young[i]<<" "<<Chul[i]<<"   "<<i+1<<endl;
 
             }
 
}
cs