Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2705] 김백일.cedar 님이 바로 위에 등록했던 내용에 대한 반론
답변이여 [] 1231 읽음    2003-05-26 20:14
(이글 바로 위에 등록되어 있던 김백일.cedar 님의 글이 삭제되어 없어졌군요.)
(따라서, 어쩔 수 없이 저도 제목을 바꾸어야 했습니다.)

지금 제가 작성한 코드와 님이 작성한 코드의 수행 속도를 비교 해보고 이런 말씀을 하시는 겁니까?

핵심만 뽑자면 아래 두 함수의 수행속도 차이를 비교해야 하는 것으로 생각됩니다.
두함수를 매개변수를 10000 정도로 해서 수행속도를 한 번 비교해보십시오.

제가 잘못 비교한 게 아니라면 님의 코드의 수행속도가 훨씬 느린 것으로 나옵니다.

제가 작성한 코드에서는 님의 코드에서 사용하는 알고리즘 partial_sum과 같이 앞의 합을 다시 산출할 필요가 없도록 t를 사용하고 있음을 아셔야 할 것입니다.
님의 코드는 불필요하게 추가 메모리를 사용하므로써 그에 따른 속도 저하가 발생합니다.

void Progression1(unsigned n)
{
unsigned __int64 an=0,t=0;
for(unsigned k=1 ;k<=n ;++k){
  an=0;
  t=0;
  for(unsigned i=1 ;i<=k ;++i){
   t = t + i;
   an = an + t;
  }
}
}


void Progression2(unsigned n)
{
  //cout << "Illustrating the generic iota and partial_sum algorithm.\n";
  //const int N = 20;

  for(unsigned k=1 ;k<=n ;++k)
  {
   vector<int> x1(k), x2(k);

   iota(x1.begin(), x1.end(), 1);

   //ostream_iterator<int> out(cout, " ");
   //copy(x1.begin(), x1.end(), out);
   //cout << endl;

   // Compute the partial sums of 1, 2, 3, ..., N
   // putting the result in x2:
   partial_sum(x1.begin(), x1.end(), x2.begin());

   //copy(x2.begin(), x2.end(), out);
   //cout << endl;
  }
}


김백일.cedar 님이 쓰신 글 :
: 질문이여 님이 쓰신 글 :
: : 안녕하세여
: : 1+(1+2)+(1+2+3)+(1+2+3+4)+....(1+2+3+.....+10) 이런건데여
: : 다음과 같은 군수열의 값을 출력하는 프로그램 작성이거든여?
: : 문제자체를 이해못하것네여 ㅠ_ㅠ 도와주세여
:
: 답변이여님의 첫번째 답변처럼 일반항을 계산해서 구하는 것은
: 당근 출제자가 원하는 답이 아닙니다.
: 그렇다고 두번째 답변처럼 매번 부분합을 계산한다면,
: 메모리는 절약되지만 속도는 상당히 느린방법이죠.
:
: 메모리보다는 속도를 최우선으로 하려면
: 배열에다가 각 부분합을 저장하는 방식으로 해야 합니다.
:
: 제가 쓴 다음 글을 참고하세요.
: http://www.borlandforum.com/impboard/impboard.dll?action=read&db=cpp_tip&no=5

+ -

관련 글 리스트
2686 군수열에 값을 출력 오늘까진데 빨리 부탁 질문이여 1220 2003/05/26
2705         김백일.cedar 님이 바로 위에 등록했던 내용에 대한 반론 답변이여 1231 2003/05/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.