본문바로가기
함께 풀고 싶은 문제
창의력을 기를 수 있는 수학 문제 또는 퍼즐을 내는 곳입니다.
[창의 퍼즐] [규칙] 리퍼만 알고리즘
리퍼 2020.02.11 23:15 조회 1861

파일을 압축하는 알고리즘에는 '허프만 알고리즘'이라는 것이 있다. 허프만 알고리즘은 많이 나오는 문자는 크기를 줄이고 적게 나오는 문자는 크기를 키우는

알고리즘이다. 예를 들어서 hello everyone은

e: 10 h : 0100 l : 110 n : 0101 o : 111 r : 000 v : 001 y : 011이 되어

010010110110111 1000110000011111010110로 압축된다. (자세한 원리는 생략한다.)

참고로 알파벳은 숫자보다 4배의 용량이 더 필요하다. 위의 경우에선 압축률은 72%정도 된다.

 

------------------------------------------------여기서부터 문제입니다!!!!------------------------------------------------------

 

리퍼는 이 알고리즘을 응용해 '리퍼만 알고리즘'을 만들었다.

이 알고리즘은 가장 많이 사용된 문자를 0으로 하고 다음으로 많이 사용된 것을 0, 다음은 1, 다음은 10, 11, 100, 101 ... 이런 식으로 압축을 한다.

같은 횟수만큼 사용된 문자는 먼저 나온 문자가 더 많이 사용됐다고 가정한다.

예를 들어, 리퍼만 알고리즘으로 hello world를 압축하면  h 1번, e 1번, l 3번, o 2번, w 1번, r 1번, d 1번이 사용됬으므로

l: 0, o: 1, h: 10, e: 11, w: 100, r: 101, d: 110이 되어 1011001 10011010110으로 압축된다.

 

(1) 'hello rriper'을 리퍼만 알고리즘으로 압축하면 어떤 배열이 만들어질까?

 

(2) (1)에서 만들어진 배열만 있으면 (1)에서 만들어진 배열을 원레대로 만들 수 없다. 원레 문장의 글자 수와 사용된 글자가 주어지면 (1)에서 만들어진 배열을 원레대로 만들 수 있을까? 없다면 반례는 무엇이 있을까? (반례는 하나만 찾아도 된다.)

 

 

그리고 여러분!!!! 오해하시는 것 같은데 2번 문제는 "hello rriper"을 원레대로 되돌릴 수 있는지 묻는 문제입니다!

이 문제 어떠셨나요?

글쎄요

0

어려워요

5

  •  
    부분해결
    수학날강두 Lv.5 2020.03.02 22:13 비밀댓글
    비밀 댓글이 등록 되었습니다.
    댓글 작성하기 댓글수1
    •  
      리퍼 Lv.6 2020.03.03 07:30 비밀댓글
      비밀 댓글이 등록 되었습니다!
  •  
    수학날강두 Lv.5 2020.03.02 22:13

    혹시 사용된 문자 종류도 공개되나요?(2번)

    댓글 작성하기 좋아요0 댓글수0
  •  
    해결
    E=mc2 Lv.3 2020.03.03 03:30 비밀댓글
    비밀 댓글이 등록 되었습니다.
    댓글 작성하기 댓글수0
  •  
    리퍼 Lv.6 2020.03.03 07:58

    2번 문제에 조건을 추가했습니다!

    댓글 작성하기 좋아요0 댓글수0
  •  
    수학날강두 Lv.5 2020.03.03 19:12 비밀댓글
    비밀 댓글이 등록 되었습니다.
    댓글 작성하기 댓글수1
    •  
      리퍼 Lv.6 2020.03.04 09:44 비밀댓글
      비밀 댓글이 등록 되었습니다!
  •  
    부분해결
    Lv.7 2020.03.04 19:59 비밀댓글
    비밀 댓글이 등록 되었습니다.
    댓글 작성하기 댓글수1
    •  
      리퍼 Lv.6 2020.03.04 21:00 비밀댓글
      비밀 댓글이 등록 되었습니다!
  •  
    다시 도전
    Lv.7 2020.03.04 21:03 비밀댓글
    비밀 댓글이 등록 되었습니다.
    댓글 작성하기 댓글수1
    •  
      리퍼 Lv.6 2020.05.08 01:51

      (2)번 문제는 1111010100 0010111010을 원레대로 변환할 수 있는지 묻는 것입니다.

      좋아요0
  •  
    부분해결
    라일라 Lv.3 2020.04.28 22:26 비밀댓글
    비밀 댓글이 등록 되었습니다.
    댓글 작성하기 댓글수1
    •  
      리퍼 Lv.6 2020.05.01 20:15 비밀댓글
      비밀 댓글이 등록 되었습니다!
  •  
    해결
    내손안의흑염소 Lv.4 2020.05.10 08:06 비밀댓글
    비밀 댓글이 등록 되었습니다.
    댓글 작성하기 댓글수0
  •  
    Nightsky Lv.5 2020.08.13 21:04

    리퍼님 그런데 1번만 풀면 부분해결이 아닌건가요?

    댓글 작성하기 좋아요0 댓글수1
    •  
      리퍼 Lv.6 2020.08.14 10:03

      1번만 풀면 부분해결입니다!

      좋아요0
  •  
    다시 도전
    파이애플 Lv.3 2020.11.01 09:04 비밀댓글
    비밀 댓글이 등록 되었습니다.
    댓글 작성하기 댓글수1
    •  
      리퍼 Lv.6 2020.12.02 00:29

      같은 횟수만큼 나오면 먼저 나온 숫자가 더 많이 사용됐다고 가정합니다!

      좋아요0
  • 폴리매스 문제는 과학기술진흥기금 및 복권기금의 재원으로 운영되고, 과학기술정보통신부와 한국과학창의재단의 지원을 받아 수행된 성과물로 우리나라의 과학기술 발전과 사회적 가치 증진에 기여하고 있습니다.

  • ☎문의 02-6749-3911