자유 게시판
프로필 이미지
[레벨:7]신현균
read 2558 vote 0 2011.12.25 (01:35:15)

부흥회 나가서 발표한 내용인데 약간 보강해서 적어봅니다.

 

난 프로그래머이며,

오류를 찾아내는 사례로 플러스와 마이너스를 성능 비교해본다.

 

미션 : 오류 발생 지점을 찾아라

전체 소스  : 1만 라인

오류 발생 지점 : 9,999 번째 라인

 

 

* 솔루션1) 플러스 방법

- 첫번째 라인을 테스트 한다

- 문제 없으면 두번째 라인을 테스트 한다.

- 찾을 때까지 반복한다.

- 9, 999의 테스트 후 답을 찾는다.

 

* 솔루션2) 마이너스 방법

- 1라인 ~ 5천라인을 삭제하고 테스트 한다

- 문제가 있으면 다시 남은 5천라인의 1~2500라인을 삭제한다

- 찾을 때까지 반복한다.

- 15번이면 답을 찾는다.

 

 600 배 이상의 성능 차이가 났다.

 

한 번 테스트하는데 걸리는 시간이 한 시간이고,

1일 8시간 주 5일 근무한다면

 

플러스는 답 찾는데 5년이 걸리고,

마이너스는 이틀이 걸리게 된다.

 

 

ps1)

s/w에 알려져 있는 설에 의하면

일 잘 하는 사람이 혼자 25인분의 역할을 한다고 한다.

 

ps2)

그렇다면 이것이 가장 빠른 방법인가?

아니다. 경험이 있는 사람은 9,999번째 라인이 항상 실수하는 부분이란 걸 알고 있다.

경험이 있다는 것은 애초에 답을 알고 있다는 것으로 한 번이면 답을 찾는다.

 

 

 


프로필 이미지 [레벨:4]삐따기

2011.12.25 (01:43:34)

최악의 경우 600배..

반대로 했다면 1솔루션이 15배 빠르오.

p.s 테클아니오.

 

프로필 이미지 [레벨:7]신현균

2011.12.25 (02:31:26)

운이 좋은 케이스인 플러스로 15번 안에 답이 발견될 경우로

플러스가 빠를 확률은 0.15%

프로필 이미지 [레벨:20]양을 쫓는 모험

2011.12.25 (01:53:31)

신현균 님이 달마실 시절에 '레인3' 님이셨군요.

프로필 이미지 [레벨:15]aprilsnow

2011.12.25 (08:17:19)

(ㅎㅎ세상에서  구조론 사이트만큼  재미있는 곳이 있을까 싶소~ )

 

-----------------------------------------------------------

 

이 문제에서 솔루션2에 딴지를 거는 사고가 있을 수 있소.

(물론 틀린 방법이요. 그런데 쉽게 그렇게 빠져들수 있소)

 

* 솔루션2) 마이너스 방법

- 1라인 ~ 5천라인을 삭제하고 테스트 한다

  --- 어떤이 : 그럼 5,000번?

 

- 문제가 있으면 다시 남은 5천라인의 1~2500라인을 삭제한다

---- 어떤이 : 그럼 2,500번?

 

- 찾을 때까지 반복한다.

----- 어떤이 : 결국 5,000 + 2,500 + 1,250 + 625 + 312.5 + 156.25 + 78.125+ 39.0625

                              +19.53125 + 9.765625 + 4.8828125 + 2.44140625 + 1.220703125

                              = 9998.779296875 

       뭐야? 반만 테스트하는데도 9999번!!!!

       그럼 두배로 일이 늘어나잖아~

      (ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이 어리석은 덧셈을 해보면서 혼자 엄청 낄낄거림.)

 

- 15번이면 답을 찾는다.

------------어떤이 : 15번은 무슨 15번. 이거 사기아녀?  사실은  19,998 번일수도 있느거 아녀?

                 (ㅋㅋㅋㅋ 하다가 순서를 까먹으면 처음부터 다시하다가 죽을때가지 계산만 할수도 있음.)

 

-----------------------------------------------------------------

이런 생각하는 사람이 생각보다 많을 수 있음.

 

1만 라인의 오류를 단번에 알수 있다는 전제를 까먹거나 인식하지 못해서 생기는 뻘짓이요.

(어디있는지는 몰라도 오류가 있는지 없는지는 삼척동자도 아는 것, 왜? 작동이 잘 안되니까~)

그런데 생각보다 이렇게 생각하는 인간이 아주 많을꺼요~

 

1만 라인 중 어디에 오류가 있는줄은 모르지만,

1만 라인의 시스템의 어딘가에 오류가 숨어있다는 것은 직관과 현상으로 바로 알수 있다.

그렇다면, 합리적인 마이너스의 방법을 택하여 범위를 설정하고 패턴을 적용하여 문제를 해결한다.

 

이상한 넘들:

"1만라인의 어딘가에 오류가 숨어있다!

 다른건 보지마라. 오류! 오류! 오류를 찾아야해.

 어딘가에 무서운 오류가 있어.

 그놈을 잡아내려면

 한놈한놈 순서대로 다 잡아족쳐!"

 

" 전체를 보지 마라. 저기 멀쩡해 보이는 곳에도 오류가 숨어있을 지 몰라!

  저 놈도 족쳐. 오류를 잡아! 털면 다 나오게 되어있어!!!

  이 무시무시하게 겁나는 세상의 문제들을 해결하기 위해선

  다 의심하고 꼼짝못하게 저 놈들의 자발적 작동을 중지시켜야해!"

 

생각보다 이런 이상한 넘들의 논리가 잘 먹히기도 하는 세상이요. 

그러니까 질을 먼저 보는 훈련을 해야하는 건가~~

프로필 이미지 [레벨:15]aprilsnow

2011.12.26 (20:19:11)

쓸데없이 위에서 내가 한건 아주 바보라고 가정하고 한 아주 말도 안되는 계산법인데...

실제로 이런 식으로 일을 하게 하는 사람들이 있음.(요즘 그런 넘한테 괴롭힘을 당하는 처지라...)

두가지 방법이 순서만 다른 심리적 차이일 뿐 횟수는 같다거나.

아니면 아주 혼용해서 오히려 두배의 일을 하게 하거나...

 

 

프로필 이미지 [레벨:27]오리

2011.12.25 (22:07:13)

마이너스 방법을 사용하면 최악의 경우와 최선의 경우가 차이가 적고, 플러스 방법으로 하면 최선의 경우와 최악의 경우가 차이가 많이 나죠. 



프로필 이미지 [레벨:15]aprilsnow

2011.12.26 (20:23:23)

문제의 전제에 대해서 생각해 보게 되는데...

(컴퓨터 프로그래밍 라인의 오류발견 방식을 모르므로)

 

각각의 라인이 유기적 상호작용을 하고 있어서

어느 곳 하나에 오류가 있으면 전체의 작동에 문제가 인지된다는 전제라면

15번이면 답을 찾고,

 

라인이 하나하나의 캡슐처럼 따로 존재한다면

이건 오리님 말대로 단정적 횟수의 차이가 아니라 확률의 차이.

어쨎든 우월한 확률.

 

 

 

 

List of Articles
No. 제목 글쓴이 날짜 조회sort
2152 대통령을 모욕하라. image 1 김동렬 2014-09-17 2562
2151 구조론연구소는 4 상동 2014-07-11 2562
2150 언어의 문제 5 아란도 2013-06-14 2562
2149 최재경 사표 1 까뮈 2016-11-23 2561
2148 인생이란.. 2 아제 2010-12-27 2561
2147 [재공지2] 전국구조론 모임 18 아나키 2016-05-27 2560
2146 샬롬 큰바위 2013-03-26 2560
2145 권위는 전염된다. 2 다원이 2013-12-19 2559
2144 장준하 선생 영상 pinkwalking 2013-03-29 2559
» 플러스와 마이너스의 성능 비교 7 신현균 2011-12-25 2558
2142 [공지] 5월13일 충북옥천 만남 있습니다 image 7 이산 2017-05-12 2556
2141 스트레스 4 낙오자 2013-03-05 2555
2140 soba image 5 길옆 2013-01-22 2555
2139 모든 궁금증은 풀렸소. 3 systema 2017-01-04 2554
2138 허용적이 좋은가 엄격함이 좋은가... 3 이상우 2014-07-07 2554
2137 Daum, 정치뉴스--온 국민 슬픔에 빠뜨리고..결국 비참한 종말 --- 해안 2014-07-22 2554
2136 가카께서 절대 그러실 분이 아니라구 1 양을 쫓는 모험 2011-11-02 2554
2135 조직내 정보보고 고민 중인데여^^ 기똥찬 2012-01-16 2553
2134 대선토론 하이라이트 4 風骨 2017-04-26 2552
2133 대화법을 접하면서 드는 생각 이상우 2010-11-24 2551