BRONZE
BRONZE 등급의 판매자 자료

C++ 바퀴벌레 랜덤워크

배경) 다음과 같은 문제를 생각하자. 바퀴벌레가 방 안에 있다. 이 방은 사각형이고 바닥은 n*m개의 타일로 이루어져 있다. 바퀴벌레는 랜덤하게 타일에서 타일로 돌아다닌다. 바퀴벌레가 위치한 타일에서 주위의 8개 타일로(벽에 붙어 있을 때를 제외하고) 이동할 수 있는 확률이 모두 같다면 그 벌레가 마루의 모든 타일을 최소한 한 번 이상 방문하는 데 얼마나 오래 걸릴까? 이 문제를 확률 이론으로 풀기는 어려울 것이다. 하지만 컴퓨터를 이용하면 다음과 같이 쉽게 해결할 수 있다. n*m배열의 값은 각각의 타일을 바퀴벌레가 몇 번 방문했었는지를 나타낸다. 마루에서 바퀴벌레가 있는 타일의 위치를 (ibug, jbug)로 나타내면 이동 가능한 주위 8개 타일의 위치는 (ibug + imove[k], jbug + jmove[k])로 나타낼 수 있다. (단, 0 ≤ k ≤ 7) 주어진 8개의 타일 중 하나로 랜덤하게 이동하는 것은 0과 7사이의 랜덤 값에 의해서 결정된다. 물론 바퀴벌레는 방 밖으로 나갈 수가 없다. 따라서 벽에서 밖으로의 이동은 무시하고 그 위치에서 새로운 랜덤 값을 만들어서 이동한다. 바퀴벌레가 각각의 타일로 이동할 때 도착한 타일의 배열 값을 1씩 증가시키면 0이 아닌 값을 가진 타일은 바퀴벌레가 다녀갔던 곳임을 알 수 있다. 모든 타일을 바퀴벌레가 최소한 한 번 방문했다면 실험은 끝난다. 프로그램 명세) 위의 바퀴벌레 문제를 해결하는 프로그램을 아래의 제한 조건에 맞게 작성하시오. (1) 10 ≤ n ≤ 90, 10 ≤ m ≤ 90의 범위 안의 값을 다룰 수 있다. (2) 무한 루프를 피하기 위해서 반복의 최대값을 제한하라. (3) 각 실험 마다 다음을 계산하라. (a) 바퀴벌레의 총 이동 횟수 (b) 각 타일에 대한 바퀴벌레의 방문 횟수 분석 내용) 1) n=25, m=50인 경우에 대한 프로그램 명세 3의 a,b 2) n=11, 21, 31, 41, 51, 61, 71, 81, m=51인 경우 각각에 대하여 바퀴벌레의 출발점을 왼쪽 모서리 및 중앙으로 하고 바퀴벌레의 총 이동 횟수의 변화의 추이를 차트로 표현하라. 단 각 실험은 50번 이상 반복하여 그 평균값을 취하라. 3) 2의 각 경우에 대한 프로그램의 실행시간을 천분의 일초 단위로 계산하여 그 추이를 차트로 표현하라. (clock() 함수를 이용)
5 페이지
압축파일
최초등록일 2008.11.10 최종저작일 2008.03
C++ 바퀴벌레 랜덤워크
  • 미리보기

    소개

    배경) 다음과 같은 문제를 생각하자. 바퀴벌레가 방 안에 있다. 이 방은 사각형이고 바닥은 n*m개의 타일로 이루어져 있다. 바퀴벌레는 랜덤하게 타일에서 타일로 돌아다닌다. 바퀴벌레가 위치한 타일에서 주위의 8개 타일로(벽에 붙어 있을 때를 제외하고) 이동할 수 있는 확률이 모두 같다면 그 벌레가 마루의 모든 타일을 최소한 한 번 이상 방문하는 데 얼마나 오래 걸릴까?

    이 문제를 확률 이론으로 풀기는 어려울 것이다. 하지만 컴퓨터를 이용하면 다음과 같이 쉽게 해결할 수 있다. n*m배열의 값은 각각의 타일을 바퀴벌레가 몇 번 방문했었는지를 나타낸다. 마루에서 바퀴벌레가 있는 타일의 위치를 (ibug, jbug)로 나타내면 이동 가능한 주위 8개 타일의 위치는 (ibug + imove[k], jbug + jmove[k])로 나타낼 수 있다. (단, 0 ≤ k ≤ 7) 주어진 8개의 타일 중 하나로 랜덤하게 이동하는 것은 0과 7사이의 랜덤 값에 의해서 결정된다. 물론 바퀴벌레는 방 밖으로 나갈 수가 없다. 따라서 벽에서 밖으로의 이동은 무시하고 그 위치에서 새로운 랜덤 값을 만들어서 이동한다. 바퀴벌레가 각각의 타일로 이동할 때 도착한 타일의 배열 값을 1씩 증가시키면 0이 아닌 값을 가진 타일은 바퀴벌레가 다녀갔던 곳임을 알 수 있다. 모든 타일을 바퀴벌레가 최소한 한 번 방문했다면 실험은 끝난다.



    프로그램 명세) 위의 바퀴벌레 문제를 해결하는 프로그램을 아래의 제한 조건에 맞게 작성하시오.

    (1) 10 ≤ n ≤ 90, 10 ≤ m ≤ 90의 범위 안의 값을 다룰 수 있다.

    (2) 무한 루프를 피하기 위해서 반복의 최대값을 제한하라.

    (3) 각 실험 마다 다음을 계산하라.

    (a) 바퀴벌레의 총 이동 횟수

    (b) 각 타일에 대한 바퀴벌레의 방문 횟수



    분석 내용)

    1) n=25, m=50인 경우에 대한 프로그램 명세 3의 a,b

    2) n=11, 21, 31, 41, 51, 61, 71, 81, m=51인 경우 각각에 대하여 바퀴벌레의 출발점을 왼쪽 모서리 및 중앙으로 하고 바퀴벌레의 총 이동 횟수의 변화의 추이를 차트로 표현하라. 단 각 실험은 50번 이상 반복하여 그 평균값을 취하라.

    3) 2의 각 경우에 대한 프로그램의 실행시간을 천분의 일초 단위로 계산하여 그 추이를 차트로 표현하라.

    (clock() 함수를 이용)

    컴파일 실행환경

    Microsoft visual c++

    참고자료

    · 없음
  • 자료후기

    Ai 리뷰
    지식판매자가 등록한 자료는 과제에 직접 활용할 수 있는 유용한 내용이 많아, 큰 도움이 되었습니다. 앞으로도 계속 좋은 자료 부탁드립니다! 감사합니다.
    왼쪽 화살표
    오른쪽 화살표
  • 자주묻는질문의 답변을 확인해 주세요

    해피캠퍼스 FAQ 더보기

    꼭 알아주세요

    • 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
      자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
      저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
    • 해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.
      파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
      파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우

함께 구매한 자료도 확인해 보세요!

문서 초안을 생성해주는 EasyAI
안녕하세요. 해피캠퍼스의 방대한 자료 중에서 선별하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 목차부터 본문내용까지 자동 생성해 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 캐시를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2025년 05월 23일 금요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
5:08 오후