자유 게시판
프로필 이미지
[레벨:7]신현균
read 2645 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)

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

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

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

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

 

 

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

2011.12.25 (22:07:13)

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



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

2011.12.26 (20:23:23)

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

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

 

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

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

15번이면 답을 찾고,

 

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

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

어쨎든 우월한 확률.

 

 

 

 

List of Articles
No. 제목 글쓴이 날짜 조회
1372 우리나라 사람들이 산수를 잘 하는 이유? image 3 ahmoo 2011-12-26 2950
1371 당신이 뭘하든 마이너스다. 정청와 2011-12-26 2496
1370 감사 정청와 2011-12-26 2209
1369 구조론 모임- 정다방 프로젝트에서... image 22 아란도 2011-12-25 3782
1368 미학적이상주의-한 꽃이 피었겠네 1 정청와 2011-12-25 2314
» 플러스와 마이너스의 성능 비교 7 신현균 2011-12-25 2645
1366 부흥대성회 완전 부흥 3 양을 쫓는 모험 2011-12-25 2419
1365 반가웠습니다. 11 sunbee7 2011-12-24 2490
1364 특허 청구항에 대한 구조적 접근 1 내손님 2011-12-24 3708
1363 누구? 2 일반이론 2011-12-24 2235
1362 밑에 양자이야기가 나와서 양자 컴퓨터..? image 카르마 2011-12-24 2656
1361 동렬님의 양자구조론 관련 질문입니다. 1 water 2011-12-24 2585
1360 정부는 조문을 전면 허용하라. 1 노매드 2011-12-24 2419
1359 동렬님 뿌리깊은 나무에서 1 불휘 2011-12-23 2447
1358 세상에서... 정청와 2011-12-23 2184
1357 왜 무언가가 있을까? 정청와 2011-12-23 2366
1356 '김광수 경제연구소'의 방향성은 어떤지요? 5 딱선생 2011-12-23 3018
1355 깨달음의 용도 2 정청와 2011-12-22 2187
1354 우리 같이 놀아요 정청와 2011-12-22 2683
1353 바람이 분다 3 정청와 2011-12-22 2400