본문

글쓰기   목록 | 이전글 | 다음글

[유머] 수학주의) 프로그래밍 배운 사람들이 보고 뒤집어진 코드 [97]


profile_image


profile_image (4514618)
160 | 97 | 141206 | 비추력 222674
프로필 열기/닫기
글쓰기
|
목록 | 이전글 | 다음글

댓글 | 97
1
 댓글


(IP보기클릭)121.128.***.***

BEST
하 이게 프로그래밍이지 ㅋㅋㅋ 최적화하려면 저 정도 수준까지 알아야하는구나
21.02.25 17:32

(IP보기클릭)1.240.***.***

BEST
그러니까 저거 복사해서 쓰면되는거지?
21.02.25 17:31

(IP보기클릭)112.173.***.***

BEST
저래서 수학 고인물이 필요하댔나
21.02.25 17:31

(IP보기클릭)49.142.***.***

BEST
압도적인 성능을 기반으로 처리능력이 딸리면 구린 컴퓨터 쓰는 유저탓을 함
21.02.25 17:41

(IP보기클릭)1.240.***.***

BEST
완벽하게 이해했어
21.02.25 17:30

(IP보기클릭)119.202.***.***

BEST
ㅁㅊ 이게됨?
21.02.25 17:30

(IP보기클릭)61.45.***.***

BEST
요샌 그냥 컴파일러가 알아서 저런 코드로 바꿔줌. 저런 거 하느라 생산성 낭비하느니 그냥 다른 코드 한줄을 추상적으로 더 짜고 최적화는 대부분 컴파일러한테 떠넘기면 됨. 오히려 어줍잖게 최적화한다고 깝치면 컴파일러 최적화가 제대로 안 돌아서 더 느릴수도 있음
21.02.25 17:43

(IP보기클릭)223.38.***.***

BEST
허용범위 내의 오차가 있지만 그대신 무지막지하게 연산이 줄어드는 기법들 보다보면 전 그냥 ㅂㅅ이구나 라는것만 느끼게 됬죠. 대학 과목중에 이게 있어서 3개월은 ㅂㅅ된 기분이었는데
21.02.25 17:38

(IP보기클릭)220.71.***.***

BEST
https://ko.wikipedia.org/wiki/%EA%B3%A0%EC%86%8D_%EC%97%AD_%EC%A0%9C%EA%B3%B1%EA%B7%BC "이 알고리즘은 1990년대 초에 실리콘 그래픽스에서 개발한 것으로 추정되며, 1999년에 퀘이크 3 아레나의 소스 코드에 쓰인 것이 가장 유명하다." 카맥이 만든게 아님. "이 알고리즘은 뉴턴의 방법을 사용하여 비교적 정확한 결과를 만들어 내지만, 소수점의 손실 때문에 부정확하고 1999년부터 도입된 x86 SSE의 rsqrtss에 비해 훨씬 느리다." 요새는 FPU가 더 빠르고 정확해서 안 씀
21.02.25 17:51

(IP보기클릭)114.202.***.***

BEST

https://youtu.be/DEqXNfs_HhY 이런거 보면 수학하시는 분들 존경스러움
21.02.25 17:49

(IP보기클릭)119.202.***.***

BEST
ㅁㅊ 이게됨?
21.02.25 17:30

(IP보기클릭)1.240.***.***

BEST
완벽하게 이해했어
21.02.25 17:30

(IP보기클릭)1.240.***.***

BEST
야황 육손
그러니까 저거 복사해서 쓰면되는거지? | 21.02.25 17:31 | | |

(IP보기클릭)121.128.***.***

야황 육손
| 21.02.25 17:32 | | |

(IP보기클릭)112.173.***.***

BEST
저래서 수학 고인물이 필요하댔나
21.02.25 17:31

(IP보기클릭)121.128.***.***

BEST
하 이게 프로그래밍이지 ㅋㅋㅋ 최적화하려면 저 정도 수준까지 알아야하는구나
21.02.25 17:32

(IP보기클릭)49.142.***.***

what the f■ck?
21.02.25 17:37

(IP보기클릭)223.63.***.***

[삭제된 댓글의 댓글입니다.]
간케
맞음. Q3 코드도 카멕형이함 | 21.02.25 17:39 | | |

(IP보기클릭)223.63.***.***

아이리오 아키
참고로 저거 99년 게임이고 C로 짜진 엔진이다. | 21.02.25 17:39 | | |

(IP보기클릭)106.247.***.***

아이리오 아키
역시 과메기형 | 21.02.25 17:47 | | |

(IP보기클릭)211.248.***.***

아이리오 아키
ㄷㄷ 역시 128류 개발자 | 21.02.25 17:56 | | |

(IP보기클릭)106.102.***.***

[삭제된 댓글의 댓글입니다.]
간케
개발은 혼자 다 하면 되니 사람 숫자 늘려서 의사소통에 시간 낭비하면 안된다고 하던 양반이니 직접 다 했겠지 | 21.02.25 17:42 | | |

(IP보기클릭)223.38.***.***

식신시츄
그래서 주석에 시X 저기 머꼬? 라는게 적혀있잖음ㅋㅋㅋㅋㅋ | 21.02.25 17:48 | | |

(IP보기클릭)106.102.***.***

아이리오 아키

주석 단 사람 심정 ㅋㅋㅋㅋ | 21.02.25 17:50 | | |

(IP보기클릭)223.38.***.***

식신시츄
ㅋㅋㅋㅋㅋㅋ | 21.02.25 17:52 | | |

(IP보기클릭)39.7.***.***

[삭제된 댓글의 댓글입니다.]
간케
존 카멕이 둠 3에 들어간 광원효과도 직접 다 코딩했음 | 21.02.25 17:47 | | |

(IP보기클릭)106.102.***.***

암튼 게임 만드는데 수학자가 필요하다는거지?
21.02.25 17:38

(IP보기클릭)223.38.***.***

여포신봉선
수학자보다는 개발자가 수학적 사고와 친숙하고 컴퓨터의 구조를 잘알아야 한다는 거에 가까움 | 21.02.25 18:16 | | |

(IP보기클릭)223.38.***.***

BEST
허용범위 내의 오차가 있지만 그대신 무지막지하게 연산이 줄어드는 기법들 보다보면 전 그냥 ㅂㅅ이구나 라는것만 느끼게 됬죠. 대학 과목중에 이게 있어서 3개월은 ㅂㅅ된 기분이었는데
21.02.25 17:38

(IP보기클릭)39.7.***.***

와씨 와드
21.02.25 17:38

(IP보기클릭)223.63.***.***

Q3 개발진이라고 뭉뜽그리기보다 카멕형이 만든거라고 봐야할거같다ㅋㅋ
21.02.25 17:39

(IP보기클릭)106.102.***.***

아이리오 아키
이드 개발진 = 존카멕 공식은 레이지때까지 거의 유효했음.. 개발은 나 혼자 다 하면 된다던 사람이라.. | 21.02.25 17:43 | | |

(IP보기클릭)223.63.***.***

식신시츄
그럿타. 둠3 엔진 만들때 C++로 처음 넘어간 양반일 정도로 효율을 되게 따진모양 | 21.02.25 17:44 | | |

(IP보기클릭)220.78.***.***

이해했음 저 코드를 복사하면 된다는거지?
21.02.25 17:39

(IP보기클릭)218.154.***.***

사실 API 이용하는 수준에서는 저런 수학 쓸 일도 적겠지만 저런 API를 만드는 입장에서는 대학원 석박사들이 모여서 저런 수학 이야기만 하겠지 무섭다
21.02.25 17:40

(IP보기클릭)221.156.***.***

그럼 지금 기술은 저거보다 더한 게 많단 말이겠네.. 와..
21.02.25 17:40

(IP보기클릭)106.101.***.***

요즘게임은 저걸 어떻게 극복했을까
21.02.25 17:40

(IP보기클릭)49.142.***.***

BEST
V_solves_everything
압도적인 성능을 기반으로 처리능력이 딸리면 구린 컴퓨터 쓰는 유저탓을 함 | 21.02.25 17:41 | | |

(IP보기클릭)118.32.***.***

V_solves_everything
요즘은 하드웨어가 좋아서 대부분 최적화 필요없음 | 21.02.25 17:41 | | |

(IP보기클릭)61.45.***.***

BEST
V_solves_everything
요샌 그냥 컴파일러가 알아서 저런 코드로 바꿔줌. 저런 거 하느라 생산성 낭비하느니 그냥 다른 코드 한줄을 추상적으로 더 짜고 최적화는 대부분 컴파일러한테 떠넘기면 됨. 오히려 어줍잖게 최적화한다고 깝치면 컴파일러 최적화가 제대로 안 돌아서 더 느릴수도 있음 | 21.02.25 17:43 | | |
파워링크 광고

(IP보기클릭)58.238.***.***

감정지배자
이게 맞말이지 이젠 그냥 루트쓰면됨 퀘이크3는 1999년대 게임이니까 그런거지 | 21.02.25 17:46 | | |

(IP보기클릭)221.145.***.***

V_solves_everything
지금은 극한환경에서 동작할 임베디드 머신 만들게 아니라면 저런 방법을 쓸 이유가 없어졌어 | 21.02.25 18:06 | | |

삭제된 댓글입니다.

(IP보기클릭)118.32.***.***

[삭제된 댓글의 댓글입니다.]
Na?!
게임 개발 안할거면 수학 필요없는게 맞음 | 21.02.25 17:42 | | |

(IP보기클릭)124.49.***.***

감정지배자
??? | 21.02.25 17:42 | | |

(IP보기클릭)14.6.***.***

감정지배자
아주 틀린 말은 아니지 | 21.02.25 17:46 | | |

(IP보기클릭)58.238.***.***

감정지배자
이제 하드웨어 좋아져서 게임이나 임베디드 아니면 굳이 수학잘할 필요없는게 맞긴함 | 21.02.25 17:49 | | |

(IP보기클릭)121.169.***.***

감정지배자
다른 프로그래밍은 수학 안쓸것 같지? 요새 유행하는 인공 지능만 해도 수식 덩어리이고, DB도 수학 기반이고.. 하나못해 반복문 돌리는것도 기초적인 산수 필요함 | 21.02.25 17:54 | | |

(IP보기클릭)124.56.***.***

감정지배자
생각보다 게임 말고도 수학이 많이 들어가는 분야는 많아요. | 21.02.25 18:15 | | |

(IP보기클릭)59.6.***.***

감정지배자
게임 개발을 안 할 거면 수학이 필요없다라기보단, 게임 개발이 그만큼 프로그래밍 중에서도 가장 어려운 축에 속한다고 보면 정확함. '나도 게임 만들어보고 싶어' 라는 건 '나도 초정밀 뇌수술 한 번 해 보고 싶어' 같은 말과 비슷하다고 보면 될 듯? | 22.09.05 18:24 | | |

(IP보기클릭)121.134.***.***

[삭제된 댓글의 댓글입니다.]
Na?!
나도 개발로 밥벌어 먹고 산지 10년정도 됐는데 수학쪽이 약해서 어디가서 개발자라고 얘기 안함. 그냥 개잡부 입니다. 이렇게 얘기하지 | 21.02.25 17:43 | | |

(IP보기클릭)119.66.***.***

[삭제된 댓글의 댓글입니다.]
Na?!
프로그래밍은 그런이야기 잘 안나오지. 처음 발 담글때부터 닥치고 수학이라 것보다 기획에서 많이나옴. 그림못그리고 프로그래밍 못하는데 게임개발 하고싶은애들이 많다 | 21.02.25 17:52 | | |

(IP보기클릭)106.101.***.***

1/sqrt 가 저렇게까지 해야하는거였나...
21.02.25 17:40

(IP보기클릭)121.169.***.***

수학과가 괜히 컴공으로 발돌린다는게 아니긴 하지
21.02.25 17:41

(IP보기클릭)121.132.***.***

뭔소리지
21.02.25 17:41

(IP보기클릭)182.225.***.***

좋아 이해해써
21.02.25 17:41

(IP보기클릭)223.62.***.***

뇌가 이진법으로 되어있으신가ㄷㄷ 미쳤다;;
21.02.25 17:41

(IP보기클릭)124.49.***.***

진짜 존카멕은 전설이다
21.02.25 17:42

(IP보기클릭)39.7.***.***

무슨소리야 시팔
21.02.25 17:42

(IP보기클릭)39.118.***.***

수학자가 괜히 알고리즘 개발하는게 아니지
21.02.25 17:42

(IP보기클릭)222.114.***.***

광원효과 코드 와드
21.02.25 17:43

(IP보기클릭)175.126.***.***

이런거보면 내가 월급받고 개발하고있는게 너무 죄송스러워진다 흑흑
21.02.25 17:43

(IP보기클릭)121.149.***.***

나도 왓더퍽 이라고 주석 달았겠다. 뭐야 왜되는데? 하면서 수학자 입장에서는 쉽게 이해?할것 같다만 프로그래머 입장에서 느낌이 방정식 쉽게 계산하는거 찾다가 혹은 우연히 코드 찾아서 넣었더니 너무 잘작동되서 기분은 좋은데 정확하게 이해못해서 말한기분 ㅋㅋㅋㅋ
21.02.25 17:43

(IP보기클릭)112.109.***.***

와 아이디어 대단하다
21.02.25 17:44

(IP보기클릭)118.46.***.***

광원효과 코드 와드
21.02.25 17:44

(IP보기클릭)211.225.***.***

왓더퍽
21.02.25 17:44

(IP보기클릭)112.109.***.***

근데 뉴턴 랩슨법이나 이런 계산 수치계산쪽도 자세히 알아야하겠네
21.02.25 17:44

(IP보기클릭)118.235.***.***

고등학교때로 돌아가면 수학따위 아무쓸모없다고 생각한나에게 죽빵때리고싶다
21.02.25 17:44

(IP보기클릭)61.84.***.***

려니
당연히 실생활에서는 그다지 필요 없음. 프로그래머나 공학 직업 가진 사람에게 필요하지....ㅋㅎㅎㅎ | 22.04.05 17:14 | | |

(IP보기클릭)118.235.***.***

열역학2법칙
직업이 공학쪽이라서..... | 22.04.05 17:16 | | |

(IP보기클릭)61.84.***.***

려니
ㅠㅠ 왜 공부 안했어 | 22.04.05 17:19 | | |
파워링크 광고

(IP보기클릭)219.254.***.***

두렵다..
21.02.25 17:45

(IP보기클릭)58.140.***.***

결국에 근사값 최대한 이용해서 식 간단화했다는 거네. 컴퓨터 성능이 이걸 그냥 시켜도 사실상 프레임에 영향이 없을 정도로 발전한 지금은 이럴 필요는 없겠지.
21.02.25 17:47

(IP보기클릭)211.177.***.***

컴퓨터 구조에 관한 명확한 지식이 없으면 할 수 없는
21.02.25 17:47

(IP보기클릭)219.248.***.***

와 비트연산 극한을 여기서 보네 이게 뭐시에요
21.02.25 17:47

(IP보기클릭)14.32.***.***

???:아 난 게임만들거라서 수학공부는 안해도 된다고!
21.02.25 17:47

(IP보기클릭)1.238.***.***

와드
21.02.25 17:48

(IP보기클릭)121.164.***.***

그전에 오차를 교정하는 수식도 있다는게 넘모 놀랍다
21.02.25 17:48

(IP보기클릭)211.244.***.***

자신감이 떨어졌어
21.02.25 17:48

(IP보기클릭)119.66.***.***

슈팅게임에서 주인공 기체따라 날라오는 좌/우편향 총알이나 주인공 기체가 쏜 총알이 긋는 궤적같은것도 방정식이 한덩어리씩 들어가지. 난 이전기획자가 넘겨둔 문서 그대로 개발에 던졌다가 개발이랑 같이 자빠졌었다. 소수점포함 8자리 숫자 하나 구할라고 10^33까지 올라갔다가 00.000000까지 내려오는 계산식을 만들어뒀더만. 수식 바꾸느라 둘이서 한달동안 대가리터짐. 난 안그래도 수학도 잘 못하는데 씨부럴..
21.02.25 17:48

(IP보기클릭)114.202.***.***

BEST

https://youtu.be/DEqXNfs_HhY 이런거 보면 수학하시는 분들 존경스러움
21.02.25 17:49

(IP보기클릭)175.126.***.***

빠른 제곱근 코드 와드
21.02.25 17:50

(IP보기클릭)223.38.***.***

쩌네요
21.02.25 17:50

(IP보기클릭)220.126.***.***

한국인이면 한국말로 해르
21.02.25 17:50

(IP보기클릭)59.28.***.***

정확한 계산은 수학자들 몫이지 우리 공학자들은 적당한 보정값만 구해서 최고 효율만 원한다고
21.02.25 17:51

(IP보기클릭)124.58.***.***

간단하게 6을 구하시오 하면 1+1+1+1+1+1로 더하기로 하냐 2×3하냐 해서 컴퓨터가 리소스 덜 잡고 빠르게 값을 구할때 수학이 중요하다는거
21.02.25 17:51

(IP보기클릭)220.71.***.***

BEST
https://ko.wikipedia.org/wiki/%EA%B3%A0%EC%86%8D_%EC%97%AD_%EC%A0%9C%EA%B3%B1%EA%B7%BC "이 알고리즘은 1990년대 초에 실리콘 그래픽스에서 개발한 것으로 추정되며, 1999년에 퀘이크 3 아레나의 소스 코드에 쓰인 것이 가장 유명하다." 카맥이 만든게 아님. "이 알고리즘은 뉴턴의 방법을 사용하여 비교적 정확한 결과를 만들어 내지만, 소수점의 손실 때문에 부정확하고 1999년부터 도입된 x86 SSE의 rsqrtss에 비해 훨씬 느리다." 요새는 FPU가 더 빠르고 정확해서 안 씀
21.02.25 17:51

(IP보기클릭)223.62.***.***

TopSpoiler
카맥이 쓴건 저 왓더 뻑 이라는 주석이라는 소리 카멕도 다져다 복 붙했.... | 21.02.25 18:30 | | |

(IP보기클릭)112.169.***.***

그래서 저 함수를 걍 컨트롤C 컨트롤 V 하면 된다는거지?
21.02.25 17:51

(IP보기클릭)126.194.***.***

루리웹-1055810202
ㄴㄴ 라이브러리화 되어있으니 불러오기 하면 됨 | 21.02.25 17:54 | | |

(IP보기클릭)112.169.***.***

[삭제된 댓글의 댓글입니다.]
매생이굴국밥
컴파일러가 최적화 까지 다해준다니 개쩐다 | 21.02.25 17:58 | | |

(IP보기클릭)61.39.***.***

먼말이야 슈바
21.02.25 17:52

(IP보기클릭)1.245.***.***

SSAMDASU

| 21.02.25 17:53 | | |

(IP보기클릭)211.36.***.***

저게 이해 안되면 이걸 생각하면 됨 1. pc에서 1부터 10000 까지 더한 결과를 내야 되는 경우가 있음. 2 단순한 프로그래머는 반복문을 이용해서 1+2+3.... 해서 10000 까지 더함. - 이러면 덧셈을 9999번 하는 거. 3. 그런데 옆에 지나가는 수학자가 (10000+1)x10000/2 라는 수식을 가르쳐줌. - 한번의 덧셈과 곱셈과 나눗셈으로 끝. 라이브러리 단계로 가면 이런게 꽤 있음
21.02.25 17:53

(IP보기클릭)112.169.***.***

카오틱블레이드
컴퓨터에게 수학을 노가다 시켜서 풀게 하냐 아니면 수식을 간단화해서 풀게 하냐의 차이같네 | 21.02.25 17:56 | | |

(IP보기클릭)119.205.***.***

와,,, 개쩌네 본체의 연산능력을 이용해서 아예 프로그램이 해결하게 할거냐 아니면 식을 간소화 할거냐 캬 수학 좋아했었는데 역시 쩐다
21.02.25 17:53

(IP보기클릭)182.172.***.***

비트연산이란 경우의 수를 생각하는 것부터 다르다.
21.02.25 17:55

(IP보기클릭)182.209.***.***

광원 와드
21.02.25 17:55

(IP보기클릭)121.176.***.***

전혀 모르겠다. //그래서 큰 업적 세우신 분들 보면 항상 수학자분들이랑 협업을 하지.. 막말로 나는 이론을 만들테니 너는 증명해라 ㅋㅋㅋㅋ
21.02.25 17:56

(IP보기클릭)220.121.***.***

코드 읽다가 저 0x5f3759df에서 주석처럼 왓더뻑이란 생각이 듬 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 솔직히 용도는 몰라도 어떤 계산이 이루어지는구나 하는건 이해가 가는 간결한 코드임 저 32비트짜리 수 빼면 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
21.02.25 17:58

(IP보기클릭)112.169.***.***

역시 수학은 대가리를 써서 풀어야돼 노가다로 풀면안돼고
21.02.25 17:59

(IP보기클릭)115.93.***.***

어차피 곱셈 나눗셈은 코드로 접근하면 모두 가산기(+)를 통해 처리되어 비트 단위 덧셈과 비트 쉬프트, 오버로드 등으로 처리됨. 그 어셈블리 코드를 이해하면 적용 가능한 수준이긴 하지만.. 역시 WTF이군. 참고로 퀘이크의 존 카멕은 어쎔블러로 프로그램 하던 사람임. 어셈블러(기계어를 영문자로 치완한, 즉, 기계어와 1:1 메칭되는 언어) 물론 이후 세대부터는 컴파일 과정을 포함해서 1:1이라기는 좀 그렇게 되었지만, C나 basic, java처럼 보고 이해가기 쉽게 만들어진 언어는 아님. 간단한 C코드 Disassamble하면 장난아닌 길이의 코드가 나온다.(물론 컴파일러의 최적화와 관련 있긴하지만.)
21.02.25 18:00

(IP보기클릭)182.219.***.***

math 라이브러리에 이런 류의 접근이 많음. sin cos 구할 때나 log 구할 때 미리 연산된 테이블을 참조함.
21.02.25 18:01

(IP보기클릭)223.38.***.***

쉽게 말하면 Float의 데이타 구조가 로그형태를 띄는걸 역이용해서 적절한 상수랑 연산만으로 1/sqrt 계산이 가능하다는건가? 발상지리네 ㄷㄷㄷㄷ
21.02.25 18:01

(IP보기클릭)39.113.***.***

지금은 걍 공식 그대로 써도 알아서 빌드할 때 맞춰서 빌드한다.
21.02.25 18:01

(IP보기클릭)117.111.***.***

이해가 안가는데 정상이죠?
21.02.25 18:01

(IP보기클릭)182.209.***.***

저런거 보면 어떻게 저런 생각를 하는지 궁금함
21.02.25 18:02

(IP보기클릭)203.81.***.***

내가 하는건 프로그래밍이 아니구나..
21.02.25 18:04

(IP보기클릭)39.113.***.***

에마텐
저란건 api 개발 같은 로우레벨 언어 쓰는 개발자들이 신경써야 할 부분이지 일반적인 클라이언트 개발하는 하이레벨 언어 쓰는 사람이 신경 쓸 부분이 아님. 하이레벨 개발자들은 저런식으로 만들면 오히려 욕처먹음. 유지보수 거지같이 만든다고. | 21.02.25 18:12 | | |

(IP보기클릭)39.113.***.***

에마텐
무엇보다도 어줍잖게 저런거 따라해봐야 전문적으로 api 개발하는 사람들이 만들어 놓은 성능 절대 못따라감. | 21.02.25 18:13 | | |

(IP보기클릭)122.43.***.***

수학적으로 다른 연산을 써서 근사값을 내는 건 자주 있는 일이라 아주 놀랍진 않은데, 거기다 변수 데이터 저장 형식을 응용해 연산과정을 줄이는 건 생각도 못했네.
21.02.25 18:05


1
 댓글




목록 | 이전글 | 다음글
X