[카테고리:] 학술

  • 피라미드의 합

    오일러 프로젝트의 18번과 67번 문제다.


    3



    7

    5

    2

    4

    6

    8 5

    9

    3

    위와 같은 숫자로 된 피라미드가 있다. 가장 위쪽에서 가장 아래까지 한칸씩 움직이면서 내려온다. 그리고, 내려오면서 그 경로에 있는 숫자를 모두 더한다. 위에 빨간색으로 표시된 길은 그 합이 최대가 되는 경로에 해당한다.

    문제. 다음 숫자 피라미드의 꼭대기에서 밑바닥까지 내려갈 때, 합이 최대가 되는 경로를 지난다고 하면, 그 합의 값은 얼마인가?

    75

    95 64

    17 47 82

    18 35 87 10

    20 04 82 47 65

    19 01 23 75 03 34

    88 02 77 73 07 63 67

    99 65 04 28 06 16 70 92

    41 41 26 56 83 40 80 70 33

    41 48 72 33 47 32 37 16 94 29

    53 71 44 65 25 43 91 52 97 51 14

    70 11 33 28 77 73 17 78 39 68 17 57

    91 71 52 38 17 14 91 43 58 50 27 29 48

    63 66 04 68 89 53 67 30 73 16 69 87 40 31

    04 62 98 27 23 09 70 98 73 93 38 53 60 04 23

    해설에 의하면, 위의 피라미드는 겨우 16단이고, 따라서 가능한 경우가 16384가지밖에 없다. 따라서 모든 경로를 모두 테스트 하는 것이 가능하다. 그런데, 67번 문제는 좀 더 막장이다.

    
    


    펼치지 마세요

    이건 100줄짜리인데, 2의 100제곱 만큼의 경로가 있다. 이걸 모든 경로를 다 해본다는 것은 사실상 불가능하다. -_-;

    즉, 그보다 좀 더 똑똑한 방법을 생각해야 한다.

    물론 난 두 문제 모두 알고리즘으로 풀었으므로 이 해설을 쓸 수 있는 거다. 알고리즘만 잘 짜면 펜티엄3 800MHz로도 0.1초만에 답이 나오게 할 수 있다.

    힌트

    1. 이 문제는 해결한 사람이 매우 많다. 이것은 굉장한 힌트가 된다.

    2. 모든 경로를 다 해보는 것은 불가능하다는 사실을 이미 알려주고 있다. 이것으로부터도 많은 것을 깨달을 수 있다.


    풀이는 접어둔다.

    아무튼, 한번에 2문제를 풀었으니 된거다.

  • 재미난 놀이기구

    Vortx라는 놀이기구가 있다.

    http://www.teachersource.com/Energy/FantasticRides/TheVortx.aspx

    참고로 이 기구의 좀 커다란 버전은 혜화동에 있는 국립서울과학관에 전시되어 있다. 실제로 실험을 해볼 수도 있다.

    위에서 동전을 굴려주면 깔때기를 타고 가장자리를 돌다가 점점 속도가 줄어들어서 가운데로 빠져들어가는 거다.

    이걸 초등학교 5학년 애들에게 분석하라고 시키는, 대충 그런 느낌의 교재를 개발하는데…

    자. 나의 임무는 이것을 물리적으로 분석해서, 동전이 떨어지지 않도록 하려면 어떻게 해야 하는지를 알아내야 한다.

    동전이 떨어지는 이유는? 당연히 마찰력 때문이다. 만약 마찰이 없다면 높이는 변할지 몰라도 적당한 궤도를 그리며 잘 돌아갈 것이다.

    그럼, 에너지를 써 보자.

    $E=T+U$

    운동에너지 $T$는

    $T=\frac{1}{2}m (r^2 \dot(\theta)^2 +\dot{r}^2 + \dot{z}^2)$

    위치에너지 $U$는

    $U=mgz$

    여기서 $z$는 위쪽 방향, $r$은 회전축에서 나가는 방향, $\theta$는 위에서 보았을 때 반시계방향으로 회전하는 방향이다.

    마찰이라는 것은 원래는 보존되었어야 할 에너지인 $E$를 줄이는 역할을 한다. 일단 질량 $m$은 불변이라고 치자. 그럼, 줄어드는 $E$를 보전해 주려면 운동에너지나 위치에너지 중의 하나, 또는 둘 다를 늘려줘야 한다. 가장 쉬운 방법은 위치에너지 $U$를 늘리는 것이다. 어떻게? 중력가속도 $g$를 인위적으로 키워줄 수 있기 때문이다. 그저 위로 확 들어올리면 된다.

    다시 원래대로 전체 에너지가 되돌아 가게 되면, 운동에너지와 위치에너지는 서로 변환되면서 원래의 궤도를 만들어 줄 것이다.

    두번째 문제는, 시간이 지남에 따라 회전 속도를 알아내야 한다는 것이다.

    이번엔, 에너지가 줄어들게 되는 문제를 생각해 보자. 가만히 놔두면 시간이 지남에 따라 전체 에너지가 줄어든다. 그럼 어차피 운동에너지와 위치에너지는 서로 변환되므로, 위치에너지가 최저인 상태에서의 회전 속력을 생각해 보자. 그런데, 전체적으로는 에너지가 줄어들지만, 속력이 줄어들어서 아래쪽으로 내려오게 되면 반지름이 작아진다. 반지름이 작아지면 구심력을 유지하기 위해서는 좀 더 빠른 속력으로 움직여야 한다. 따라서 회전 속도는 점점 빨라지게 된다.

    이 문제를 Analytic하게 풀어보려고 했는데, 2차 비선형 상미분 방정식이 등장하는 바람에 풀 수가 없었다. Numerical하게 풀어볼 수도 있긴 하겠지만 시간이 없다. 다음 기회에…

  • 입자검출기 제작 일지 – 2006년…

    Cern의 F. Sauli가 쓴 Principle of Operation of Multiwire Proportional and

    Drift Chambers 를 스터디 했습니다.

    그리고 W. R. Leo의 Techniques for Nuclear and Particle Physics Experiments

    와 G.F. Knoll – Radiation Detection and Measurement, Wiley 1989 책을

    부교재로 보았습니다.

    두 논문 모두 파일로 갖고 있는데, 화일 크기가 너무 커서 첨부해 드릴 수가 없습니다. 메신저로 드려야 할 것 같네요.

    제가 여기서 이메일로 MWPC의 “모든 것”을 설명드리는 것은 그만한 수준의 리뷰 논문을 하나 쓰는 것이나 마찬가지기 때문에

    무리가 있을 것이라고 보여지고, 우선은 위의 논문을 공부하시면서 기초를 잡아가시는 것이 좋습니다.

    다만, MWPC의 전체적인 구조와 작동 원리는 설명드리도록 하겠습니다.

    MWPC의 구조의 생김새는 구글에서 검색하면 대강의 모습은 나오므로 참고하시기 바라구요…

    MWPC 상자, 프리앰프, 데이터 취득기, 기록장치 등으로 나누어 집니다.

    MWPC 상자 내부에는 실질적으로 입자가 지나갈 때 신호를 만들어 주는 음극판과 양극 선이 있고, 그 내부는 비활성 기체로 채워집니다.

    신호가 만들어지는 원리는 다음과 같습니다.

    고에너지 입자가 상자 안으로 들어가게 되면 상자 안에 있는 기체들을 이온화 시키게 되는데, 이 이온화된 기체들이 음극판과

    양극선 사이의 전기장 때문에 다시 합쳐지지 못하고 서로 반대 방향으로 끌려갑니다. 그리고 전기장에서 얻은 운동 에너지로 더

    가속되고, 가속된 전자는 다른 기체 분자를 때려서 더 많은 전자를 만들어 냅니다. 즉, 한두개의 작은 숫자의 전자에서

    시작하여서 수백만배로 신호가 증폭됩니다.

    이렇게 만들어진 전자들은 양극 선으로 끌려들어가서 전류로서 흐르게 되고, 이렇게 흘러간 전류는 상자 바깥의 프리앰프에서

    증폭되어 데이터 취득기로 들어가서 처리되고, 기록장치에 기록됩니다. 기록장치는 그냥 컴퓨터 정도 생각하시면 됩니다.

    MWPC의 장점은, 입자가 실제로 어느 위치를 지나갔는지 알 수 있다는 점입니다. 이것을 알 수 있는 방법은, 음극판 사이에

    양극 선을 평행하게 여러개 배열합니다. 그리고 그중 어느 한 곳에서 입자가 지나가게 되면, 그 근방의 양극 선에서만 신호가

    발생되므로 신호가 어디서 발생했는지 알면 입자가 어디를 지나갔는지도 알 수 있게 됩니다. 2개의 MWPC를 만들어서 서로 그

    양극선 방향이 직교하도록 만든다면, x,y 좌표를 찍을 수도 있습니다. 그리고 z좌표가 다르도록 하여 x,y 좌표를 2개를

    찍는다면(즉, MWPC를 4개 쓰는 겁니다) 입자가 어느 방향에서 어느쪽으로 지나갔는지 정확히 알 수 있게 됩니다.

    신호가 어디서 발생했는지 알아내는 방법은 여러가지가 있습니다.

    첫째로, 양극선 마다 각각 데이터 취득기를 설치합니다. 이렇게 하면 가장 정확한 정보를 얻을 수 있으나, 데이터 취득기 가격이

    엽기적으로 비싸져서 전체적으로 가격이 매우 올라갑니다.

    둘째로, Charge division method가 있습니다. 이것은 저항을 길게 직렬로 연결하고, 그중의 어느 한 곳에

    신호가 발생하였다면, 왼쪽과 오른쪽으로 가는 전하의 양이 다를 것이기 때문에 양쪽에서 측정되는 전압이 다를 것이고, 그 전압의

    비율을 이용하여 길다란 저항 선 중 어느 곳에서 신호가 출발하였는지 추정하는 방법입니다.

    셋째로, Time Delay method가 있습니다. 이것은 마찬가지로 저항을 길게 연결하는데, 이번엔 왼쪽과 오른쪽에서

    신호가 들어온 시각을 비교합니다. 어느 곳에서 출발하였느냐에 따라 긴 거리를 이동하는데는 더 오래 걸리겠죠. 따라서 시각을

    측정하여 그 차이를 비교하면 신호가 출발한 위치를 추정할 수 있습니다.

    이외에도 각종 방법이 있습니다만, 제가 공부한 것은 위의 세가지이고 그중 저희는 Charge division method를 구현했습니다.

    상자 안에는 기체를 채워 넣는데, 전자를 잘 잡아먹지 않는 비활성 기체를 채웁니다. 일반 공기인 산소나 질소는 전자랑 부딪치면

    그 전자를 붙들고 놓아주지 않기 때문에 (전자친화도가 큼) 신호가 작아지게 되고 따라서 비활성 기체를 넣어줍니다.

    여기에 추가로, 이온화가 잘 일어나도록 하는 기체를 약간 추가해 줍니다. 이산화탄소나 부탄 가스 같은 것들을 넣는데, 부탄

    가스가 좀 더 성능은 좋지만 폭발 위험이 있으므로 이산화탄소가 좋습니다.

    아울러, 음극판과 양극선 사이의 전압을 결정하는 것은 중요한 문제입니다. 저희는 3000V를 걸어 주었는데, 전압 영역에

    따라서 이온화가 일어나는 경향이 다르고, 최초에 입사한 입자의 에너지에 따라 반응하는 정도가 달라지기 때문에 적절한 전압을

    결정해야 합니다.

    너무 작은 전압을 걸게 되면 이온화가 일어나지 않아서 신호가 잡히지 않겠죠. 너무 큰 전압을 걸게 되면 이온화가 계속 일어나서

    연속적인 방전이 일어나므로 신호가 쓰레기 값으로 뒤덮입니다.

    제작은…

    MWPC 상자의 외부 상자는 약 50cm의 가로, 세로 길이와 20cm 정도의 높이를 가지는 스테인리스 스틸 상자로 했습니다.

    여기에 유리창을 하나 달았습니다. 400만원 정도 들더군요. 지금은 금속 값도 오르고 물가도 올라서 더 비쌀 듯…

    이 안에 넣게 되는 회로들은 모두 자체 제작하였습니다.

    그리고 헬륨 가스와 이산화탄소 가스를 구입하고, 이 두 가스를 적절한 비율로 섞어서 공급하는 Mass Flow

    Controller를 구입하여 연결했습니다.

    가스를 넣기 전에 안에 원래 있던 공기를 모두 빼야 하므로 진공 펌프가 필요합니다.

    MWPC에 공급할 3000V짜리 전압이 있어야 하므로, 고전압 파워 서플라이가 필요합니다. 이것은 자체 제작한 것을

    사용하였고, 약 100만원 정도 제작비용이 들었습니다.

    그리고 프리 앰프, 데이터 취득기 등이 필요합니다.

    앰프나 프리앰프는 직접 만들려면 굉장히 노가다가 쎄고, 그렇다고 구입하려면 꽤 비쌉니다.

    데이터 취득기는 일단은 그냥 오실로스코프로 시작했습니다.

  • 메시지 하나 바꿨을 뿐인데



    이 글은 inuit 님의 블로그에서 복사한 글입니다.

    원문 :





    http://inuit.co.kr/1559



    이번 출장은 그나마 난이도가 참 낮은 출장입니다. 저는 꽃놀이 출장이라 하지요. 파트너사 주최로 열리는 업계 컨퍼런스입니다. 가치사슬상의 한 회사씩 발표를 합니다. 디바이스 회사 대표로 저희 회사가 뽑힌건 분명 좋은데, 대표이사 대신 제가 발표를 해야 하는건 별로 안 좋습니다. -_- 이래저래 여간 신경 쓰이는 일이 아니니까요.



    1. 자료 준비




    영업팀에서 보내온 발표자료의 드래프트를 보니, 나름 꼼꼼히 잘 만들어져 있는데 참 딱딱합니다. 꼼꼼히 볼 시간도 없는 상황인데 고칠 시간은 더더욱 난망입니다. 이대로는 발표하긴 어려워, 화장을 했습니다.



    제가 다른 사람이 작성한 슬라이드 검수할 때, 농담삼아 부르는 이름이 있습니다. PT 자료를 통째로 바꾸는 건 정형수술, 스토리라인의 골격은 그대로 두고 도표와 메시지 등 상당 부분을 고치는건 성형수술이라 합니다. 대부분 그대로 가고, 몇몇 키워드와 키차트만 약간 손보는건 화장이라 부르지요.


    원래 목차

    고친 목차

    A사 (우리 회사이름) 소개



    B사 (파트너사)의 중요성



    B사와의 비즈니스 현황



    A사 비즈니스 소개

    Who is A?



    When A meets B..



    What we did?



    What we can do for you?


    이런 전략을 쓰니, 최소의 수정이면 되었습니다. 스토리와 메시지에 맞게 세부 단어를 좀 고치고, 키 메시지를 지원하는 내용을 두장 넣고, 불필요한 내용을 삭제했습니다.


    주목할 점은 두가지입니다.



    질문 활용




    대개 이런 컨퍼런스는 딱딱하게 마련입니다. 대개 예상 가능한 이야기가 의례적으로 나오기 십상이라 주목도가 떨어집니다. 이 때, 간단한 질문 몇개를 목차형식으로 사용하여 사람들의 주의를 환기합니다. 그리고 어떤 내용이 나올까 기대하게 만듭니다. 질문이 열린 질문이라 마음속에 나름대로 어떤 대답을 갖고 있는 경우라면, 어떤 답을 제가 주든 학습효과가 큽니다. 맞으면 기분좋아서, 틀리면 대비효과로 그렇습니다.



    스토리라인




    무조건 질문형이라고 의미 있지는 않습니다. 전체가 하나의 스토리를 형성해야 합니다. 슬라이드 구성을 면밀히 보고나서 이런 흐름을 생각했습니다.



    저 회사가 어떤 내용이지? 궁금증 해결.





    이 모임과 어떤 연관이 있지? 대답.




    그래서 현재 어떤 일이 벌어지고 있을까? 성공 스토리 열거.




    결국, 나에게 무슨 가치가 있지? 비즈니스 가능성 제안.




    2. 현장 적응




    저는 중요한 프리젠테이션의 경우, 몇 십장이 되든 슬라이드를 통째로

    외웁니다. 양이 많아보여도, 스토리라인이 있으면 그리 어려운 일은 아닙니다. 이번에 그 습관 덕을 봤습니다.
    발표 자료 검수와 발표 메시지 정렬을 할 때 청중분석과 흥미유발에 큰 중점을 뒀는데도, 컨퍼런스 룸에 들어가보니 생각과 많이 다르더군요. 바빴던 이유보다, 주최측과 직접 커뮤니케이션 하지 않은 탓이 큽니다. 사전 정보 자체가 매우 부정확했습니다. 가장 큰 특징은 작은 비율로 추정했던 대만의 제조업체들이 대다수를 차지했던 겁니다. 제 발표순서가 오는 동안 머릿속 슬라이드를 그대로 이용해서 스토리를 재구성했습니다. 두 가지 메시지를 가다듬어 새로 준비를 했습니다. 대만이라는 로컬 상황에 특화된 메시지와, 선발업체로서의 성공스토리. 간단히 ‘니하오’, 베이징어로 오프닝하고 인트로를 시작했습니다. 특히, 대만에 대한 제 이해와 존중하는 마음을 전하고, 오전 세션에서의 대만의 산업동향 관련 발표내용 일부를 다시 꺼내어 언급을 했습니다. 짧은 기간 동안 성공한 제 회사에 대한 약간의 자부심을 보이고, 그 이유를 분석해 줬습니다. 그리고, 미래 비즈니스 관련한 로드맵을 소개했습니다. 강연의 마무리도 ‘셰셰’로 끝냈지요. 결과는 대성공입니다. 미국에서는 참한 스피치를 하고 나면 여기저기서 다가와 잘 들었다, 인상 깊었다 칭찬하는 문화 가 익숙한데, 대만 사람들도 그렇더군요. 강연 후에 여러 사람이 찾아와 감사의 말을 전하고 가거나, 함께 비즈니스를 하고 싶다는 뜻을 전해왔습니다. 주최측은 파트너로서 자신의 위상을 치켜 세워준 점에 매우 깊은 고마움을 표시했습니다. 듣고 보면 쉽지만, 막상 상황 닥치면 경험 부족한 사람은 도망치고 싶은 그런 상황입니다. 제가 강조하고 싶은 이야기는 하나입니다.

    발표 자료의 완료는 50%의 진척이다.
    발표의 전달 노력과 실제 발표로 완성된다.
    그리고, 그 핵심은 명료한 메시지이다.
    쓰고보니 하나라고 하긴 어렵군요. -_-;



  • 인수 분해 문제

    음…이것도 어딘가에서 봤던 문제다.

    500개 이상의 약수를 가지는 첫번째 숫자를 찾아내는 문제.

    #include

    #include

    int numberOfFactors(unsigned long long );

    int main(){

    unsigned long long i=3ll;

    while(1){

    printf(“i=%lld\t”,i);

    if(numberOfFactors(i*(i+1ll)/2ll)>500){

    printf(“%lld has more 500 divisors\n”,i*(i+1ll)/2ll);

    exit(1);

    }

    i++;

    }

    return 1;

    }

    int numberOfFactors(unsigned long long p){

    unsigned long long n,i;

    n=0ll;

    for(i=1ll;i<((p/2ll)+1ll);i++){
    if(p%i==0ll){

    // printf(“%lld,”,i);

    n++;

    }

    }

    printf(“n=%lld\tp=%lld\n”,n,p);

    return n;

    }

  • 정수 분할 문제

    사실 이건 뭐라 하기도 힘들다.

    문제를 직접 보자

    http://projecteuler.net/index.php?section=problems&id=207

    이 블로그 어딘가에 이 문제에 대한 상세한 해설이 적혀 있을 것이다.

    #include

    #include

    #define YES 1

    #define NO 0

    int isPowerOfTwo(int);

    int main(){

    int n=1;

    int q=0;

    int m;

    while(1){

    m=n*(n+1);

    if(isPowerOfTwo(n+1)==YES){

    q++;

    printf(“q=%u, n=%u, m=%u, p(m)=%lf\n”,q,n, m, ((double)q/(double)n));

    }

    if(((double)q/(double)n)<1.0/12345.0){
    printf(“last, q=%u, n=%u, m=%u, p(m)=%lf\n”,q,n, m, ((double)q/(double)n));

    exit(0);

    }

    n++;

    }

    return 1;

    }

    int isPowerOfTwo(int p){

    while(p-1){

    if(p%2!=0){

    return NO;

    }

    p=p/2;

    }

    return YES;

    }

  • 글자 수 세기

    1부터 1000까지를 영어로 썼을 때, 전부 다 쓰려면 영어 몇 글자가 필요한가?

    If the numbers 1 to 5 are written out in words: one, two, three,
    four, five, then there are 3 + 3 + 5 + 4 + 4 = 19 letters used in total.

    If all the numbers from 1 to 1000 (one thousand) inclusive were written out in words, how many letters would be used?


    NOTE:

    Do not count spaces or hyphens. For
    example, 342 (three hundred and forty-two) contains 23 letters and 115
    (one hundred and fifteen) contains 20 letters. The use of “and” when
    writing out numbers is in compliance with British usage.

    원문 : http://projecteuler.net/index.php?section=problems&id=17

    one


    더보기

  • 진화론이란?

    다윈의진화론 에대해 좀 설명해주세염

    과학선생님이 진화에 대해설명하시는대 다윈의 진화론을 이야기하더니

    선생님은 그걸 잘 믿지않고 다른사람들도 신빙성이 없다고 말하는대

    사실인지도 모르겠고

    그 진화론이 어떤지도 모르겠어욤

    초5에염;;

    어렵게 설명하지좀 말아주세여

    진화론은 아주 간단한 법칙에서 시작합니다.

    “후손을 많이 남기는 유전자가 살아남는다”

    여기서 중요한 것은 “후손”과 “유전자”입니다.

    지구에 있는 어떤 생명체든지, 겉모습(표현형)은 그 겉모습을 만들어내는 유전자(유전자형)에 의해서 결정됩니다. 그리고 “후손을 만든다”는
    것은 “겉모습”의 결과죠.

    여기에 “돌연변이”라는 개념이 양념으로 들어갑니다.

    돌연변이는 유전자가 바뀌는 것을 말하는데, 이것은 후손이 생길 때마다 일어날 수 있으며, 유전자가 바뀐 돌연변이는 그 다음 후손으로 계속
    전달됩니다. 만약 돌연변이가 굉장히 치명적이어서 아예 살아남는 것 자체를 불가능하게 한다면 그런 돌연변이 유전자는 사라집니다. 하지만 돌연변이가
    후손을 남기는데 조금이라도 도움이 된다면 그런 돌연변이 유전자는 후손에게 전달됩니다.

    예를들어서, 공작새의 깃털을 살펴보죠.

    수컷 공작새의 깃털은 화려할 수록 암컷 공작의 선택을 더 많이 받습니다.

    과학자들은 실험을 했는데, 수컷 공작새의 깃털을 아주 화려하게 장식해서, 장식하지 않은 수컷 공작들과 섞어둔 후에, 암컷 공작이 어느 수컷
    공작새를 선택하는지 살펴본 것이죠. 그랬더니 화려한 깃털을 가진 수컷 공작을 선택하는 겁니다.

    따라서, 깃털을 화려하게 만드는 유전자는 후손을 더 많이 만들 수 있고, 만약 여기에 돌연변이가 일어나서 깃털을 더 화려하게 만들 수
    있다면 그 유전자는 더 많이 전달될 겁니다. 반대로 깃털이 덜 화려해지는 돌연변이라면 그 유전자는 덜 전달되겠죠.

    하지만 여기에는 “선택압력”이라는 것이 존재합니다. 실험실에서는 공작을 잡아먹을 사람이 아무도 없기 때문에 괜찮지만, 실제 자연에서는
    공작을 잡아먹는 동물들은 아주 많이 있죠. 암컷 공작의 눈에 잘 띄인다는 것은 동시에 공작을 잡아먹는 동물들의 눈에도 잘 띄인다는
    겁니다.

    따라서 깃털을 화려하게 만드는 유전자는 그 후손을 남기기 전에 잡아먹혀서 없어질 가능성이 높아집니다. 물론 반대로 깃털을 덜 화려하게
    만드는 유전자는 살아남아서 자손을 퍼트릴 가능성이 생기겠죠.

    하나의 유전자에 돌연변이가 생겼을 때, 그 돌연변이가 어느 방향으로 전달될 것인가는 전적으로 외부에서의 선택에 달렸습니다. 시절이 좋고
    천적이 적은 때라면 깃털은 점점 화려해질 것이고, 다른 천적들이 많아져서 잡아먹힐 위험이 큰 시대라면 공작의 깃털은 점점 수수해지겠죠. 이것을
    “자연선택”이라고 합니다.

    유전자는 이러한 돌연변이 속에서 균형을 이루어서 머무르게 됩니다.

    하지만 환경이 변하게 되면 진화가 시작됩니다.

    사람의 경우, 머리가 점점 좋아지고 서서 걸어다니는 것이 더 유리했기 때문에 머리를 좋게 하는 유전자와 서서 걸어다닐 수 있는 몸을
    만들어주는 유전자가 살아남았습니다. 만약 머리가 나쁜 것이 자손을 더 많이 퍼뜨릴 수 있었다면 사람은 머리가 나빠지는 쪽으로 진화했을
    겁니다.

    절대로 착각해서는 안되는 개념은, 진화라는 것은 항상 더 좋은 쪽으로 변화한다는 것입니다. 하지만 실제로 우리가 “퇴화”라고 부르는 것도
    진화의 일종이며, 진화는 항상 우리가 원하는 방향으로 가는 것이 아니라는 겁니다.

    우리가 살아있는 화석이라고 부르는 상어는 그 형태와 유전자가 수억년 전부터 거의 변화가 없었기 때문에 화석이라고 부릅니다. 즉, 진화가
    거의 일어나지 않았다는 것인데 이것은 상어는 그 자체로 바닷속에서 먹고 사는데 아무런 지장도 없고 유전자를 후손에게 전달하는데 별다른 어려움이
    없었기 때문이라는 겁니다.

    결론적으로, 진화는 유전자의 변화가 후손에게 전달되고, 그 변화가 점점 누적되어 생김새가 변하게 되는 겁니다.

    —–

    추가하자면 – 대부분의 과학자들은 진화론이 현재 존재하는 생명의 다양성과 형태를 잘 설명하고 과거에 존재했던 생물과 그 화석에 대해서도 비교적 잘 설명하고 있다고 생각합니다. “다른 사람들도 신빙성이 없다고 말하는데”에서 언급된 다른 사람들은 그 비중이 적습니다. 물론, 생각하는 사람의 수가 적다고 해서 어떤 사실의 참과 거짓이 바뀌지는 않지만, 많은 사람들이 같은 의견을 갖고 있다면 “도대체 왜?”에 대해서 진지하게 고민해 보고, 자신이 믿고 있는 것이 전부 다 오류일 가능성에 대해서도 생각해 보는 자세가 필요합니다. 적어도, 과학을 공부하는 사람이라면 말이죠.

  • 질문!

    양심이 없으면 자살이 사라질까?

  • 50자리 수 100개 더하기

    원문 : http://projecteuler.net/index.php?section=problems&id=13

    100개의 50자리 숫자가 있다. 그 합을 구하여, 그중 왼쪽에서부터 10개 자리의 값을 계산해라.

    Work out the first ten digits of the sum of the following one-hundred 50-digit numbers.

    37107287533902102798797998220837590246510135740250

    46376937677490009712648124896970078050417018260538

    74324986199524741059474233309513058123726617309629

    91942213363574161572522430563301811072406154908250

    23067588207539346171171980310421047513778063246676

    89261670696623633820136378418383684178734361726757

    28112879812849979408065481931592621691275889832738

    44274228917432520321923589422876796487670272189318

    47451445736001306439091167216856844588711603153276

    70386486105843025439939619828917593665686757934951

    62176457141856560629502157223196586755079324193331

    64906352462741904929101432445813822663347944758178

    92575867718337217661963751590579239728245598838407

    58203565325359399008402633568948830189458628227828

    80181199384826282014278194139940567587151170094390

    35398664372827112653829987240784473053190104293586

    86515506006295864861532075273371959191420517255829

    71693888707715466499115593487603532921714970056938

    54370070576826684624621495650076471787294438377604

    53282654108756828443191190634694037855217779295145

    36123272525000296071075082563815656710885258350721

    45876576172410976447339110607218265236877223636045

    17423706905851860660448207621209813287860733969412

    81142660418086830619328460811191061556940512689692

    51934325451728388641918047049293215058642563049483

    62467221648435076201727918039944693004732956340691

    15732444386908125794514089057706229429197107928209

    55037687525678773091862540744969844508330393682126

    18336384825330154686196124348767681297534375946515

    80386287592878490201521685554828717201219257766954

    78182833757993103614740356856449095527097864797581

    16726320100436897842553539920931837441497806860984

    48403098129077791799088218795327364475675590848030

    87086987551392711854517078544161852424320693150332

    59959406895756536782107074926966537676326235447210

    69793950679652694742597709739166693763042633987085

    41052684708299085211399427365734116182760315001271

    65378607361501080857009149939512557028198746004375

    35829035317434717326932123578154982629742552737307

    94953759765105305946966067683156574377167401875275

    88902802571733229619176668713819931811048770190271

    25267680276078003013678680992525463401061632866526

    36270218540497705585629946580636237993140746255962

    24074486908231174977792365466257246923322810917141

    91430288197103288597806669760892938638285025333403

    34413065578016127815921815005561868836468420090470

    23053081172816430487623791969842487255036638784583

    11487696932154902810424020138335124462181441773470

    63783299490636259666498587618221225225512486764533

    67720186971698544312419572409913959008952310058822

    95548255300263520781532296796249481641953868218774

    76085327132285723110424803456124867697064507995236

    37774242535411291684276865538926205024910326572967

    23701913275725675285653248258265463092207058596522

    29798860272258331913126375147341994889534765745501

    18495701454879288984856827726077713721403798879715

    38298203783031473527721580348144513491373226651381

    34829543829199918180278916522431027392251122869539

    40957953066405232632538044100059654939159879593635

    29746152185502371307642255121183693803580388584903

    41698116222072977186158236678424689157993532961922

    62467957194401269043877107275048102390895523597457

    23189706772547915061505504953922979530901129967519

    86188088225875314529584099251203829009407770775672

    11306739708304724483816533873502340845647058077308

    82959174767140363198008187129011875491310547126581

    97623331044818386269515456334926366572897563400500

    42846280183517070527831839425882145521227251250327

    55121603546981200581762165212827652751691296897789

    32238195734329339946437501907836945765883352399886

    75506164965184775180738168837861091527357929701337

    62177842752192623401942399639168044983993173312731

    32924185707147349566916674687634660915035914677504

    99518671430235219628894890102423325116913619626622

    73267460800591547471830798392868535206946944540724

    76841822524674417161514036427982273348055556214818

    97142617910342598647204516893989422179826088076852

    87783646182799346313767754307809363333018982642090

    10848802521674670883215120185883543223812876952786

    71329612474782464538636993009049310363619763878039

    62184073572399794223406235393808339651327408011116

    66627891981488087797941876876144230030984490851411

    60661826293682836764744779239180335110989069790714

    85786944089552990653640447425576083659976645795096

    66024396409905389607120198219976047599490197230297

    64913982680032973156037120041377903785566085089252

    16730939319872750275468906903707539413042652315011

    94809377245048795150954100921645863754710598436791

    78639167021187492431995700641917969777599028300699

    15368713711936614952811305876380278410754449733078

    40789923115535562561142322423255033685442488917353

    44889911501440648020369068063960672322193204149535

    41503128880339536053299340368006977710650566631954

    81234880673210146739058568557934581403627822703280

    82616570773948327592232845941706525094512325230608

    22918802058777319719839450180888072429661980811197

    77158542502016545090413245809786882778948721859617

    72107838435069186155435662884062257473692284509516

    20849603980134001723930671666823555245252804609722

    53503534226472524250874054075591789781264330331690

    포럼 가보니까 C, 파이썬, 루비, 펄, 자바, 어셈블리…

    아주 많은 언어들이 이 문제를 푸는데 사용되었다.


    나의 풀이 보기



    쉽다면 쉽고 어렵다면 어려운, 그런 문제였다.

    64비트 Unsigned Long 정수를 쓰면 42조까지 표현이 되는데, 그래봐야 12자리다. 그래서 저걸 다른 언어로 계산하려면 무한 자리수 계산기를 만들어야 한다.

    음…