• 전문가 요청 쿠폰 이벤트
*상*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 11
검색어 입력폼
  • [프로그래밍 언어] 프로그래밍 언어 리포트 평가B괜찮아요
    1. pivot을 이용한 가우스 조던 방법1)행렬 size 제한{행렬의{{{{{size를 10부터 증가시키면서 프로그램을 실행해 보았다.{그랬더니{{{1023 X 1023 까지는 프로그램이 동작 하는데 1024 X 1024부터는 프로그램이 동작하지 않고 segmantation fault가 되었다. memory overflow가 일어난 것이다.{{2)행렬을 초기화 하는데 행우선과 열우선의 시간차이(행렬 size는 1023 X 1023으로하였고, 시간을 증폭시키기 위해 초기화를 300번 돌렸다. 왜냐하면 시간차이가 미비하기 때문이다.{{{{{{그러나 시간 차이는 나지 않았다.{1023 X 1023을 300번 하는 것으로는 그 차이를 초단위로 집어낼 수 없었다.설명)보여지는 matrix init start time의 숫자값은 1970년부터 지난 초이다. 즉 행렬을 초기화하기 전에 시간을 check해주고 초기화가 끝난 다음에 시간을 check해 주어 그 차이를 구해 소요시간을 산출하는 것이다.{계속{{증폭을 시켜가며 차이를 구해보려 하였으나, 초단위 차이는 나지 않았다. 그러다 결국 500번으로 증폭시켜 그 차이를 구해보았다{{{{{{{보는{바와 같이 1023 X1,023 행렬을 500번 돌려 주었더니 row major 방법과 column major 방법의 차이가 1초 가량 벌어졌다. 이로써 수업시간에 배웠던 C언어가 row major 언어라는 사실을 확인할 수 있었다. 그러나 여러번 수행해보고 더큰 값을 넣어 볼 때 같은 값이 나오는 경우가 많아 그 차이는 미비한 수준임을 알 수 있다.3)pivot을 사용할 때와 하지 않을 때의 차이입력값2 3 -1 2 3 -14 2 -3 으로 문제에 주어진 4 4 -3 에서 중간에 4 값을 2로 바꾸어 대입해보았다.-2 3 -1 -2 3 -1-손으로 직접 풀어보니으로 값이 나왔다.{-pivot을 사용하지 않았을때{값은 손으로 계산한 것과 차이가 없었다. 마지막 자리가 반올림 되는 것을 제외하고는 손으로 계산한 것과 꼭 같았다.-pivot을 프로그램에 첨가 했을때{가우스 조던 방법을 사용하기 전에 위치시킴{{pivotting을 사용하지 않을 것과 같은 값이 나왔다. 위의 예 말고도 많은 값을 집어 넣어 봤지만, 결국 차이점을 찾지는 못했다. 여기저기 수소문 해보니 더 큰 수를 대입해 보라고 하는 데 더 큰 수를 손으로 풀어 정확한 값을 내는 것에 계속 실패하여 확인을 하지 못하였다. 그러나!!!!!!! 계속된 노력중 결국 난 확인하고야 말았다..눈물이 나오는 순간이었다.{손으로{계산한 결과는 {-5 44.5 -3.5{{pivot을 사용하지 않았을 때의 역행렬 값이다.실제 손으로 계산한 값과0.0000086 0.00000670.0000076 0.0000060의 오차를 가지고 있었다.{{{{{{pivot을 사용 했을 때의 역행렬 값이다. 실제로 계산한 값과0.0000076 0.00000640.0000067 0.0000057의 오차를 가지고 있었다.피봇팅을 사용하지 0.0000086 0.0000067 - 피봇팅을 사용했을 0.0000076 0.0000064않았을 때의 오차 0.0000076 0.0000060 때의 오차 0.0000067 0.0000057결론적으로 0.0000010 0.0000003 만큼 오차가 줄어들었다.0.0000009 0.0000003{-pivotting에 대한 결론pivote를 이용하면 가장 큰 값을 피봇으로 선택해 a[0][0]에 위치시키고 가우스 조던 방법을 이용하여 역행렬을 구한다.pivotting을 쓰지 않아도 역행렬 구하는데 큰 문제는 없으나, pivotting을 쓰면 좀더 오차가 작은 범위에서 구해질 수 있었다. 하지만, pivotting을 쓴다해서 오차가 사라져 버리는 것은 아니다. 단지 조금 줄여줄 뿐이다.2. Gauss Seidel method를 이용한 역행렬1)방법Gauss -seidel 법은 반복계산을 통해 값을 수렴시키는 방법이다.Gauss-Seidel법은 우선 연립 1차 방정식의 해를 초기값으로 두고, 반복계산에 따라 해를 수렴시키는 방법이다.{{식을 반복하여 계산하여, 계산된 해가 더 이상 변하지 않으면 계산을 완료한다.{수렴 판정은 rms오차를 이용한다.[방 법]미지수의 개수와 행렬의 계수를 입력받는다.초기값을 설정한다. (; 일반적으로 0(zero)를 사용)해를 계산한다.수렴을 판정한다. (; rms 오차가 EPS 보다 작으면 수렴)오차가 EPS보다 크면, 돌아가 반복한다.오차가 EPS보다 작으면 계산을 종료한다.{2)프로그램 실행 및 결론{{{{{회를 거듭할수록 오차를 줄여 나간다.{{100회까지를 한계로 정하고 실행을 시켰는데, 오차범위 안에 들어와 프로그램이 종료되었다.지정해 준 오차 범위는 #define EPS 1.E-5 이었다. 앞선 역행렬 방법과 달리 오차 범위를 지정해 줄 수 있었다.손으로 계산한 값은오차는이었다.3) 분석 및 문제이 프로그램은 수십번에 걸쳐 내가 고안해 낸 알고리즘과 프로그램을 3박 4일 동안 분석해 보고 또 분해해보았는데, 도저히 밝혀 낼 수 없는 사실이 있었다.그것은 역행렬이 다소 복잡할 경우(특별히 그렇지도 않다) 값이 수렴되는 것이 아니라 폭발적으로 증가한다는 것이다. 알고리즘상에 문제가 없다고 생각되는 데 왜 그런지 도저히 모르겠다. 큰 행렬을 집어 넣을 때도 물론 같은 현상이 일어 난다. 근데 나의 머리를 김나게 하는 것은 3 X 3 행렬에서도 그렇다는 것이다.{도무지 원인을 알 수가 없다. 3 X 3 에서도 memory overflow가 난다고 밖에는 생각할 수 없다. 이것이 결론이다. 정말 많은 걸 포기하고 매달렸는데 끝내 알아내지 못해 눈물이 난다{문제의 프로그램 부분이다.또 제곱근을 구하는 함수인 sqrt() 함수를 사용하는데, comedu에 있는 gcc compiler의 math.h 에 있지 않았다. 그래서 제곱근을 연산하지 않는 대신 EPS를 제곱하여 값을 비교하였다. 따라서 실행중에 보여지는 rms error의 값에 제곱근이 옳은 값이다. 그러나 프로그램 실행과 역행렬을 구하는데 있어서는 차이가 없다.또 seidel 연산 부분을 함수로 끄집어 내어 가우스 조던방법에서 시도했던 시간 check을 해 보았으나, 시간의 차이를 집어 낼 수 없었다. 너무 작은 시간차가 나기 때문인 것 같다.{함수 사용main 함수에 내장*************01811813.프로그램 소스1) pivot을 이용한 가우스 조던 방법#include{#define MAXROW 1023 최대 해렬 사이즈int main(){int i,j,k;int numrow, irow;float dtemp, pivot;float a[MAXROW][MAXROW+1], a_[MAXROW][MAXROW+1];{for(i=0;i
    공학/기술| 2004.03.06| 16페이지| 1,000원| 조회(1,004)
    미리보기
  • [인공지능] 영화속의 인공지능 평가A좋아요
    {차례1.영 화 소 개 및 감 상 동 기2.영 화 속 의 인 공 지 능3.인 공 지 능 에 의 한 분 석4.소 감 및 결 론1. 영화소개 및 감상동기{{▶ 원제 : Virtuosity(1995)▶ 제작 : Paramount Pictures(미국)▶ 장르 : Action / SF / Thriller▶ 시간 : 106분▶ 감독 : 브렛 레너드▶ 주연 : 덴젤 워싱턴, 러셀 크로줄거리:배경은 첨단기술이 발달한 미래사회. 리텍이라는 회사는 컴퓨터 씨드를 이용, 경찰 현장 훈련을 위한 새로운 안전프로그램 '씨드 6.7'을 개발한다. 그들은 '씨드 6.7'의 시험운행에 죄수들을 이용하는데, 살인죄로 복역중인 전직 LA 형사 파커 반즈를 가 상현실 게임의 진행자로 지명한다. 그런데 파커와 함께 게임을 하던 또 다른 죄수 가 갑자기 신경 이상 발작을 일으켜 숨지는 사건이 발생한다. 부작용을 목격한 회 사 책임자는 '씨드6.7'을 파괴하라고 지시하나, 이미 수 백명의 폭력적 인성인자를 갖고 있는 '씨드6.7'은 그를 프로그래밍한 대럴을 이용하여 현실세계로 나오는데 성 공한다. 당황한 경찰과 회사는 가상현실 속에서 '씨드 6.7'과 가장 접전을 벌였던 파커를 찾아가서 완전사면을 조건으로 그를 체포해 달라고 요청한다. 범죄심리학 박사인 매디슨과 함께 추적에 나선 파커는 '씨드6. 7'의 개발과정을 보고 경악을 금 치 못한다. 왜냐하면 '씨드 6.7'에는 자기의 아내와 딸을 살해한 '매튜 그라임즈'의 인성인자가 있었고, 행동방식이 매튜와 비슷해 많은 사람들을 죽이는 것을 좋아하 기 때문이다. 지능이 높은 '씨드6.7'의 계략에 빠져 번번이 그를 놓칠 뿐 아니라 다 시 민간인을 살해했다는 누명을 쓰게 된 파커. 게다가 '씨드6.7'은 매디슨 박사의 딸을 납치, 방송사를 습격해 인질극을 벌이는데 결국에는 주인공인 파커가 씨드를 제거한다는 내용동기:이 영화를 선택한 이유는 우선 인공지능과 관련된 가상현실을 소재로 하고 있기 때 문이고 두 번째 이유라고 한다면 예전에 정말 재밌게 본 영화중의 하나여서 다시 보고싶은 마음도 있었다. 어쨌든 이라는 영화는 '과연 인공지능 기술이 인간의 한계를 얼마나 확장시킬 수 있으며, 또 얼마만큼 최악의 상태로 만들 수 있 을까?' 이런 의문점을 들게 했다. 정말 있을 법한 예기라고 할 수 있다. 터미네이 터 에서 로봇이 지배하는 세상과도 비슷한 맥락이지만 이 영화에서는 좀더 기술적 으로 접근을 시도했고 가상현실 기법도 많이 적용된 편이다. 예를 들어 영화의 주 인공인 파커가 가상현실로 프로그램된 사이버스페이스에 접속하는 장면이라든지 이 때 사용되는 HMD( Head Mounted Display )등은 매우 현실적이라고 할 수 있다.2. 영화속의 인공지능1 첫장면( 가상현실에서 모의실험하는 모습 ){- 지나다니는 사람들은 모두 똑같은 복장에 몇가 지 룰에 의해 움직이는 것을 볼 수 있다.- 주인공이 치고 지나간다던지 총싸움이 벌어져도 아무 소리없이 가만히 자신의 룰대로만 움직인 다.- 가상현실 체험자들은 컴퓨터와 신경조직이 연결되어 있어 고통받는 모습을 볼 수 있다.( 이 때 주인공의 동료는 신경센서가 높게 조정되어 있어서 사망한다.)2 파커(주인공)이 교도소로 들어가는 장면- 컴퓨터의 감지센서로 사람을 구별한다. 그 사람의 몇 가지 특징을 갖고 있는 것 으로 보이며 주인공의 몸에 난 흉터자국 등을 구별해냈다.3 가상현실 속 인물인 씨드6.7과 개발자가 대화하는 장면- 화면 안의 씨드는 50킬로바이트에서 시작된 진화체라고 설명한다. 즉, 씨드는 혼 자서 생각할 줄 알며 그것을 바탕으로 지능이 높아지는 것을 알 수 있다.4 가상현실속 쉴라(체스 프로그램)와 어떤 사람(프로그래머로 보임)이 체스를 두는장면- 쉴라는 자신에게 접속된 사람들의 특징들을 데이터로 갖고 있으며 그에 맞게 체 스를 지능적으로 둔다. (하지만 이 장면에서 체스를 두는 실제 장면은 나오지 않 고 화면속의 쉴라가 현실세계의 프로그래머를 유혹하는 장면만 나온다.)5 유리분자를 이용해 전자뱀의 몸일부가 재생되는 장면- 수백만의 초미립 기계의 움직임이 화면에 연출된다.- 이 장면은 영화속 인공지능이라기 보다는 영화자체를 만들 때 사용된 인공지능 (영화 밖의 인공지능)이라고 할 수 있다.6 형질 모듈이 실세계에서 유리분자로 재생되는 장면- 가장 흥미있는 장면이었는데 컴퓨터 프로그램으로만 돌아가던 씨드6.7이 유리분 자 재생기술을 이용해 실세계로 나오는 장면이다.7 파커와 여형사가 씨드의 초기모델을 분석하는 장면{- 음성 인식 장치(데이터베이스 파일을 다룰 때)가 사용되었다. 컴퓨터는 사진에 보이는 여 형사의 목소리를 인식해서 파일접근을 하고 있 다.- 이 장면에서 씨드6.7은 사람의 행동방식을 보면서 학습한다는 사실을 알 수 있으며 다중인 격체로써 진짜 사람처럼 수년에 걸쳐 키운 것이 라고 나온다.8 씨드 6.7이 술집에서 인질을 잡고 있는 장면- 씨드가 파커의 얼굴을 기억한다.- 모의실험 때 만났던 사람을 기억한다는 것은 그 사람의 얼굴을 인식한다는 것으 로 수업시간에 배웠던 얼굴인식기술등이 적용된 것 같다.9 씨드 6.7이 현실세계로 나와서부터는 진화의 제한이 없어졌다. 라는 대사- 씨드 6.7이 컴퓨터프로그램으로 돌아가던 때에는 프로그래머의 입력에 따라서 학습을 하지만 유리분자를 이용해서 실세계로 나왔을 때는 자신이 직접 환경에 적응하면서( 처음 나왔을 때 중력을 느끼는 장면이 나온다) 학습을 한다.씨드 6.7은 대화식 프로그램이라서 좋아하는 사람과 게임하길 좋아한다. 라는 파커의 대사 (공중전화로 통화하는 장면)- 씨드 6.7은 사람의 행동방식이나 사고방식등을 보고 학습한다는 사실을 알 수 있다.3. 인공지능에 의한 분석- 가상현실이라는 것은 말 그대로 현실은 아니지만 현실과 구분이가지 않을 정도로 정교하 게 가상으로 만들어진 현상이나 물체를 경험하게 함으로써 사람이 현실과 가상의 구분이 혼동될 정도로 만든다는 것을 뜻한다. 하지만 이러한 가상현실에 생명을 불어넣는 요소 는 바로 인공지능이다. 이 영화에서 나온 가상현실에서는 몇 가지 룰에 의해 움직이는 사람들이 보이고 또 그 안에서 키워지고 있는 씨드가 있다. 여기서 보통 사람들을 가상 세계에 존재하는 가상생물 이라고 칭한다면 씨드는 그 안에서 스스로 학습하고 있는 가 상생물이라고 할 수 있다.- 여기서 사용된 가상현실 기법은 1인칭 시점을 충실히 구현하고자 하는 방식에서 출발한, 사용자의 시점을 가상공간에 직접 노출하는 방식의 가상현실 구성 방식이다. 첫장면에서 주인공인 파커와 동료가 가상현실에서 모의실험을 하는 것이 나오는데 이 때 주인공과 동료는 머리에 HMD( Head Mounted Display )를 장착하고 있으며 실세계에서 자신의 몸을 움직이면 가상현실에서도 몸이 움직인다. 즉, 가상현실에 마치 자신과 똑같은 아바 타를 만들어놓고 그 아바타와 자신의 몸을 일치시키는 것이다. 그럼으로써 가상현실을 접하고 있는 사람은 자신이 실세계에 있다는 착각을 하는 것이다. 이 때 좀더 reality를 높이기 위해 신경조직까지도 가상현실 프로그램에 연결시켰는데 이로써 사용자는 완벽한 가상현실을 느낄 수 있게 된다.
    공학/기술| 2004.03.06| 6페이지| 1,000원| 조회(825)
    미리보기
  • [프로그래밍 언어] 프로그래밍 언어 리포트
    REPORT3{학 과컴 퓨 터 교 육 과학 번9 7 6 5 0 1 3이 름김 상 화{목차1문 제 분 석2알 고 리 즘3실 제 계 산 과 의 비 교4결 론5소 스 코 드{세 개의 명제 P,Q,R이 있고, 논리연산자가 and, or, not, implication 네 가지가 있다. 세 개의 명제와 네 개의 논리 연산자를 조합하여 합성명제를 구하는 프로그램을 Pascal로 작성하시오. 그 프로그램에서 P ∧ Q ∨ ¬R ⇒ P를 적용해 보시오. 손으로 작성할 때와 같은 결과가 나오는지 확인하시오.1. 문제분석- 논리연산자의 계산과정을 이해- 파스칼의 문법이해- 저번 리포트에서 문제점이었던 P ⇒ Q ∧ R ∨ P ⇒ R ∨ R 과 같은 ⇒이 두 개가 나오는 문장을 고려- 또 다른 문제점인 0과 1을 T와 F로 출력- 연산자의 우선순위를 고려(실제로 우선순위는 없다고 생각함. 단지, not을 먼저 계산해 주면 됨 --> not의 우선순위가 높다고 할 수 있음)2. 알고리즘- ∧는 알파벳 v'로 ∨는 제곱을 나타내는 ^ 으로 ¬은 - 로 ⇒는 > 로 지정하였다.- 명제(p,q,r)에 대한 진리값은 자동으로 생성되게 하였다.- - (not)의 경우 따로 진리값을 구해서 원래의 값을 대체하는 방식으로 하였다. 즉, not 의 우선순위가 가장 높다고 할 수 있다. 예를 들어서, input(입력스트링)의 4번째 값이 -P라면 P의 진리값을 바꿔준후 current(결과진리값)에 들어간다.- 결과값이 0일 경우 F를 1일 경우 T를 출력3. 실제 계산과의 비교< P ∨ Q ∧ ¬ R ⇒ P >- 실제계산{P Q RP∨Q¬R(P∨Q)∧¬R((P∨Q)∧¬R)⇒PT T TT T FT F TT F FF T TF T FF F TF F FTTTTTTFFFTFTFTFTFTFTFTFFTTTTTFTT- 프로그램결과{P Q RPvQPvQ^-RPvQ^-R>PT T TT T FT F TT F FF T TF T FF F TF F FTTTTTTFFFTFTFTFTFTFTFTFF{< P ∧ Q >- 실제계산FTTTTTFFFTFTFTTTTTFTFTFTFTTTTTFTFTTTT{4. 결론- 처음에는 논리연산자의 우선순위를 따지고 ⇒의 우선순위가 제일 낮은 것이라고 생각했 었는데 그게 아니라 우선순위는 not을 제외하고 모두 같았다. 결국 프로그램을 모두 바꿔 야 했다. 어쨌든 다른 알고리즘으로 돌아가도록 설계를 했는데 차례대로 읽어들인 스트링 을 분석해서 결과값을 저장하는 방식으로 했다.- 이 숙제의 목적은 합성명제의 진리표를 구하는 알고리즘의 이해라기보다는 파스칼의 이 해라고 해야될 것 같다. 합성명제의 진리값을 구하는 것은 이산구조시간에도 배운 내용이 기 때문에 프로그래밍 언어시간에 따로 배울 필요는 없다고 생각한다.- C언어와 JAVA언어만 사용할 줄 알았었기 때문에 파스칼이 어떤 언어인가를 배우는 데 이번 숙제가 많은 도움이 되었다. 파스칼이라는 언어를 다루면서 느낀점은 생각보 다는 편리한 점이 많았다는 것이다.처음엔 C언어에서처럼 변수의 초기화를 모두 시켜주다가 프로그램을 거의 완성할 무 렵 변수의 초기화가 필요없다는 것을 알았다.한 가지 파스칼을 사용하면서 어려웠던 점은 C언어의 }(개행문자)가 없어서 상당히 에러가 많이 났었다. 특히 begin과 end의 사용은 아직까지도 헷갈린다. 어느 경우는 ;을 붙이고 어떤 경우에는 안붙인다. 결국 에러를 잡을 때에는 이것저것 다 해보는 방 법으로 해보았는데 그 부분에 있어서는 C언어가 더 편리한 것 같다.5. 소스코드program Proposition;varinput : string; 입력받는 스트링변수output : string;i,j,count,indexl,indexr,indexj,comindex1,comindex2 : integer;jinli : array[1..10, 1..10] of integer;p : array[1..8] of integer;q : array[1..8] of integer;r : array[1..8] of integer;current : array[1..100, 1..8] of inte0;r[5]:=1;r[6]:=0;r[7]:=1;r[8]:=0;for i:=1 to 100 dofor j:=1 to 8 docurrent[i][j]:=-1;최초 p,q,r에 대한 진리값을 current에 넣어준다for j:=1 to 8 do begincurrent[1][j]:=p[j];current[2][j]:=q[j];current[3][j]:=r[j];end;current[4]를 초기화시킨다..입력값의 첫번째 값을 읽어서...if(input[1]='p') then beginfor i:=1 to 8 docurrent[4][i]:=p[i];end;if(input[1]='q') then beginfor i:=1 to 8 docurrent[4][i]:=q[i];end;if(input[1]='r') then beginfor i:=1 to 8 docurrent[4][i]:=r[i];end;current의 인덱스를 초기화시킨다..5로cindex:=5;두번째 입력값부터 분석하면서 current-1과 계산한 후 current에 진리값을 저장한다.for i:=2 to length(input) do beginif(input[i]='^') then beginif(input[i+1]='p') then beginfor j:=1 to 8 do beginif(current[cindex-1][j]=1) and (p[j]=1) then begincurrent[cindex][j]:=1else current[cindex][j]:=0;end;cindex:=cindex+1;end;if(input[i+1]='q') then beginfor j:=1 to 8 do beginif(current[cindex-1][j]=1) and (q[j]=1) then begincurrent[cindex][j]:=1else current[cindex][j]:=0;end;cindex:=cindex+1;end;if(input[i+1]='r') then beginfor j:=1 to 8 do beginif(current[crrent[cindex][j]:=0else current[cindex][j]:=1;end;cindex:=cindex+1;end;if(input[i+1]='r') then beginfor j:=1 to 8 do beginif(current[cindex-1][j]=0) and (r[j]=0) then begincurrent[cindex][j]:=0else current[cindex][j]:=1;end;cindex:=cindex+1;end;end;if(input[i]='>') then beginif(input[i+1]='p') then beginfor j:=1 to 8 do beginif(current[cindex-1][j]=1) and (p[j]=0) then begincurrent[cindex][j]:=0else current[cindex][j]:=1;end;cindex:=cindex+1;end;if(input[i+1]='q') then beginfor j:=1 to 8 do beginif(current[cindex-1][j]=1) and (q[j]=0) then begincurrent[cindex][j]:=0else current[cindex][j]:=1;end;cindex:=cindex+1;end;if(input[i+1]='r') then beginfor j:=1 to 8 do beginif(current[cindex-1][j]=1) and (r[j]=0) then begincurrent[cindex][j]:=0else current[cindex][j]:=1;end;cindex:=cindex+1;end;end;end;명제에 대한 진리값을 저장-not을 생각해준다for i := 1 to j do beginif(input[i]='-') then beginfor j:=i to indexl doleftoutput[j]:=leftoutput[j+2];output[indexj]:=leftoutput[i];indexl:=indexl-2;if(indexj=1) then bnd;indexj:=indexj+1;end else beginif(leftoutput[i]'^') and (leftoutput[i]'v') and (leftoutput[i]'0')then beginoutput[indexj]:=leftoutput[i];if(indexj=1) then beginjinli[1][1]:=1;jinli[1][2]:=1;jinli[1][3]:=1;jinli[1][4]:=1;jinli[1][5]:=0;jinli[1][6]:=0;jinli[1][7]:=0;jinli[1][8]:=0;end;if(indexj=2) then beginjinli[2][1]:=1;jinli[2][2]:=1;jinli[2][3]:=0;jinli[2][4]:=0;jinli[2][5]:=1;jinli[2][6]:=1;jinli[2][7]:=0;jinli[2][8]:=0;end;if(indexj=3) then beginjinli[3][1]:=1;jinli[3][2]:=0;jinli[3][3]:=1;jinli[3][4]:=0;jinli[3][5]:=1;jinli[3][6]:=0;jinli[3][7]:=1;jinli[3][8]:=0;end;indexj:=indexj+1;end;end;end;v와 ^에 대한 진리값을 구해서 배열에 저장for i := 1 to indexl dobeginif(leftoutput[i]='^') thenbeginfor j:=1 to 8 dobegin{writeln('check3',comindex1,comindex2,indexj);}jinli[indexj][j]:=jinli[comindex1][j]*jinli[comindex2][j];end;comindex1:=indexj;comindex2:=comindex2+1;indexj:=indexj+1;end else beginif(leftoutput[i]='v') thenbeginfor j:=1 to 8 dobeginif(jinli[comindex1][j]=0) and (jinli[comindex2][j]=0)nd.
    공학/기술| 2004.03.06| 13페이지| 1,000원| 조회(358)
    미리보기
  • [프로그래밍 언어] 프로그래밍 언어 리포트 평가A좋아요
    REPORT1{학 과컴 퓨 터 교 육 과학 번9 7 6 5 0 1 3이 름김 상 화{목차1문 제 분 석 및 결 과1 C언어는 Row-major인가 Column-major인가2 과연 Recursive가 Iteration보다 느린가3 pivot은 결과값에 얼마나 영향을 미치는가4 gauss-seidel 방법에 의해 문제로 주어진 행렬의 역행렬이 구해지는가2결 론3소 스 코 드1. 문제분석 및 결과1) 실행 시간을 어떻게 체크 할 것인가?- 가장 일반적인 방법을 사용하였다. (프로그램 시작 시간 - 종료시간)즉 자료 구조 시간에 배운 방법을 참고 하였다(Fundamentals of Data Structure in C - Horowits & Sahni...){방 법 2시작 시간start = time(NULL)종료 시간stop = time(NULL)반환 타입time_t초 단위의 결과duration = (double) difftime (stop, start);2) 무엇을 비교 분석 할 것인가?1 C-언어는 Row-Major 언어인가? Column-Major 언어인가?이는 행렬의 값을 넣을 때 row와 column의 순서를 바꾸어 봄으로써구현할 수 있다.{for(i=0;i손으로 계산한 값과의 오차: 반올림을 고려할 경우 오 차는 매우 미미하다. 그림에서 나온 값은 소수점 5자리 까지 구했기 때문에 0.00001의 오차가 나는 것처럼 보 인다.>피봇팅이 아닌 방법으로 나온 값 :{PMATRIX { { 1.33332}& {-0.33333 }#{ -1.66665}& {0.66666 }}--->손으로 계산한 값과의 오차: 두 개의 값에서 약0.00001 의 오차가 난다.4 gauss-seidel 방법에 의해 문제로 주어진 행렬의 역행렬이 구해지 는가?gauss-seidel의 기본적인 방법은 연립방정식의 값을 초기값으로 저장한 후 seidel방법에 의해 반복계산을 하는 것이다. 만약 계산을 반복하다가 그 값에 변화가 없으면 계산을 완료한다. 이 때 변화가 있는지 없는지를 확인하는 것은 rms(root mean square) 오차를 이용한다고 나와있었는데 정확한 의미는 책을 아무리 뒤져봐도 이해할 수 없었다. 어쨌든 반복되는 계산과정속에서 점점 근접해가는 과정이라는 것을 알 수 있었다. 그런데 문제로 주어진 행렬이 과연 이 방법에 의해 풀려지는지를 실험해보았다.1) gauss-seidel 방법에 의해 문제로 주어진 3×3행렬을 계산하는 과정{그런데 이상하게도 답은 나오지 않고 이상한 값(값이 커지고 있었다)만 나오는 것을 확인할 수 있었다. 몇 번을 다시 해보았지만 결론은 같았다. 그래서 좀더 작은 값을 집어넣는 실험을 해보았다.2) 2×2행렬을 입력한 경우{값이 {PMATRIX { { 2.99996}& {-0.99998 }#{ -4.99993}& {1.99997 }}으로 변해가는 과정을 볼 수 있었다. 하지만 결국에는 완전한 값으로 바뀌지는 않았다. 그림에서도 볼 수 있듯이 약간의 오차는 있었다.{>손으로 계산한 값{PMATRIX { { 3}& {-1 }#{ -5}& {2 }}>가우스 seidel방법에 의한 값 {PMATRIX { { 2.99996}& {-0.99998 }#{ -4.99993}& {1.99997 }}--->손으로 계산한 값과 가우스 seidel 방법에 의한 값의 차이는0.00004, 0.00002, 0.00007, 0.00003 이었다.그렇다면 왜 주어진3×3행렬은 계산이 안될까? 주어진 문제는 역행렬의 값이 분수로 나오지도 않는다. 물론 역행렬이 분수로 나오는 행렬도 이 방법에 의해 결과값이 나오지 않는다. (아래 그림){3) 분수값으로 결과가 나오는 3×3행렬을 입력한 경우이 행렬 말고도 많은 3×3행렬을 입력해보았으나 아직까지는 결과값이 나오는 것을 찾지 못했다.그래서 생각해낸 것이 반복횟수를 기존의 100번에서 10000으로 올리면 어떨까 생각해보았다. 결론은..112번째까지 계산이 되고 그 이후부터는 계산이 안되는 것을 볼 수 있었다.4) 반복횟수를 10000으로 주었을 때(입력값은 주어진 문제){결국, gauss-seidel 방법에 의해서는 2×2행렬밖에는 구할 수 없었다.2. 결론C언어는 Row-major라고 배웠지만 실제로 해본 결과 그 차이를 눈으로 확인해볼 수 있었 다. 또한 recursive보다 iteration이 훨씬 빠르다는 것을 볼 수 있었는데 이러한 결과들은 실제로 구현해보고 그 결과를 보고 느꼈기 때문에 기억에 오래 남을 것 같다.피봇팅이 역행렬을 구하는데 어떠한 영향을 미치는지에 대해서 오차를 계산해봄으로써 알 수 있었다. 하지만 피봇팅이라는 방법으로도 완전한 값을 구할 수는 없었다. 약간의 오차 는 감수해야 한다.마지막으로 gauss-seidel 방법에 의해서 주어진 문제의 역행렬을 구하려고 했으나 구할 수 없었다. 뭐가 잘못되었는지 모르겠다. 분명히 2×2행렬은 구해지는데 왜 3×3행렬은 구해지지 않을까? 어쨌든 2×2행렬을 입력했을 때 값이 수렴해가는 과정을 볼 수 있었고 실제 계산과의 차이가 얼마나 나는지는 확인할 수 있었다.3. 소스코드#include #include #include #define MAXROW 500main(){int i,j,k,temp;int numrow,irow;double dtemp,pivot;double a[MAXROW][2*MAXROW];double a_1[MAXROW][MAXROW];double b[MAXROW],x;time_t start,stop;double duration;start = time(NULL);//초기화하는 부분for(i=0;i
    공학/기술| 2004.03.06| 16페이지| 1,000원| 조회(591)
    미리보기
  • [프로그래밍 언어] 스프린터삐꾸 계발계획서
    {학 과 : 컴퓨터 교육과9765013 김 상 화{{{{{프로그래밍 언어처리론Term Project 보고서스프린터 삐꾸------------연 도 : 2001.9. 211. 개요기존에 나와있는 지뢰게임, 윷놀이, 가위바위보, 등은 간단하면서 누구나 쉽게 이용할 수 있고, 오래도록 사랑받아 오고 있는 게임이다. 하지만, 기존의 게임들은 오직 그 게임을 즐기는 것 자체로 시간을 보내는 성향이 강하고, 혹은 개인의 기술이나 능력과는 관계없이 운을 통해서 게임의 승패가 좌우되기도 한다. 그래서 이러한 맹점을 보완하고, 모두가 부담없이 즐길 수 있는 게임이 필요성을 느껴 이번 프로젝트를 시작하게 되었다. 손쉽게 즐길수 있으면서, 게임을 즐기다 보면 자신에게 무언가 도움이 되며(like 타자연습, 행맨), 오래도록 싫증을 느끼지 않고 애용되는 게임 개발이 우리의 목표이다.1.1) 프로젝트 개요이 소프트웨어의 의한 업무과정은 다음과 같은 것을 포함하고 있다.개인의 연산능력을 통해 승부를 내는 게임으로 기본 연산자 *, - +를 이용해 빠르게 계산하면 게임상의 캐릭터(sprinter pig)가 장애물을 넘도록 한다. 지정된 거리와 장애물을 먼저 마치는 사람이 승리하게 되는 네트웍 게임이다.100m, 200m, 300m, 400m 경기로 나뉘며, 문제는 랜덤한 값으로 출제된다. 중간 중간에 조커를 넣어 게임의 박진감을 느낄 수 있게 한다. 보통 게임처럼 빠른 기록은 저장된다. 연산능력을 측정할 수 있으며, 상대방과의 대결 형식의 게임으로 연산능력의 우열을 가려 갱쟁심을 부추겨 재미를 느낄 수 있도록 한다. 반복되는 게임동안 암산능력, 연산속도 증가효과를 기대할 수 있으며, 초등학생에게는 교육의 효과까지 기대할 수 있다.1.2) 프로젝트 산출물이 프로젝트가 끝나면 다음과 같은 결과를 산출한다.연산게임을 재미있게 즐길 수 있는 pc용 소프트웨어 1본연산게임 소프트웨어 사용자 지침서 1본연산게임 소프트웨어 산출물을 통한 보고서1.3) 참고 문헌 및 정의, 약어이 문서의 이해를 위하여 도움이 될 만한 참고서적[1] 한국정보과학회, 컴퓨터 용어 사전, 정익사, 1990.[2] Roger S. Pressman, Software Engineering: A Practitioner's Approach, McGraw-Hill, 1992.[3] 최은만, 소프트웨어 공학, 정익사, 1995.[4] 김동환 외 3인, 구조적 시스템 분석, 홍능출판사, 1992. [2][3]2. 기술 관리 방법개발 단계의 모든 산출물에 대하여 변경 관리를 합니다. 개발이 진행되면 변경 관리 대상 항목을 정하고 각 단계의 이정표를 만나게 되고 검토회의가 완벽히 끝난 후에는 각 산출물의 모든 변경은 중지됩니다. 산출물의 변경이 일단 동결된 후 일어나는 변경은 철저히 보고에 의하여 심사한 후 변경하고 통보합니다.팀장을 포함한 모든 팀원은 각 단계에 대한 의의사항을 갖을 수 있으며 건의할 수 있는 권리가 있습니다. 과반수이상의 동의로 기술관리를 위한 세미나를 주최할 수 있으며 날짜나 자세한 내용은 팀장의 결정에 따릅니다.3. 위험 관리자바세미나를 통한 자바실력향상이 제대로 이루어지지 않을 시에는 자바에 능숙한 선배의 도움을 요청할 수 있습니다.그래픽에 관련한 능숙한 디자이너가 없기 때문에 사용자 인터페이스에 대한 시간을 많이 할애할 것입니다.개발일정에 맞도록 최대한 노력하되 만약 어긋날 경우에는 추가 세미나를 주최할 것입니다.개발중간에 난해한 문제에 봉착했을 때를 대비해 팀원실력에 맞는 프로 젝트를 준비하기 위한 충분한 시간을 갖도록 할 것입니다.게임은 재미가 있느냐 없느냐에 따라 필요한 프로그램인지 아닌지가 결 정됩니다. 따라서 게임개발 후 테스트기간동안 되도록 많은 사람들의 베 타테스트를 통한 평가가 이루어질 것이며 차후 업그레이드가 필요할 시에 는 적극적으로 반영할 계획입니다.4. 개발언어 및 개발환경{개발언어JAVA2디자인프로그램Photoshop6.0, Ilustrator8.0, Director8.0개발환경Pentium3 866~933MhzJAVA VMEditplus5. 일 정5. 1) 개발일정{일 정세 부 일 정1. 문제정의.구구단 학습을 이용한 게임구현2. 요구분석.게임에 어떤 기능과 요소가 필요한가?3. 구조설계.구구단 마스코트 설계.구구단을 구현하는 보드 설계.기본 알고리즘 설계4. 상세설계.네트웍 모델 설계.UI 설계.서버구현 설계.DB구현 설계5. 구현/코딩.클라이언트 모듈 구현.서버 모듈 구현6. 테스트.화면 / 그래픽 테스트.알고리즘에 따라 오류없이 돌아가는가?7. 유지 및 보수.구현된 게임의 기능추가 및 유지/보수5. 2) 세부일정{구 분문제정의요구분석구조설계상세설계구현/코딩테스트유지/보수1주차(9.7∼13)1단계2주차(9.14∼20)2단계3주차(9.21∼27)4주차(9.28∼10.4)3단계5주차(10.5∼10.11)6주차(10.12∼10.18)4단계7주차(10.19∼10.25)8주차(10.26∼11.1)9주차(11.2∼11.8)5단계10주차(11.9∼11.15)11주차(11.16∼11.22)12주차(11.23∼11.29)6단계
    공학/기술| 2004.03.06| 9페이지| 3,000원| 조회(662)
    미리보기
전체보기
받은후기 6
6개 리뷰 평점
  • A+최고예요
    0
  • A좋아요
    3
  • B괜찮아요
    2
  • C아쉬워요
    1
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 05일 일요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
8:56 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감