[월:] 2008년 09월

  • 100만원 vs 10만원, 차례상 차리기

    흥미로운 두개의 기사가 있다.

    “국내산 차례상 차리려면 100만원은 기본”


    http://news.naver.com/main/read.nhn?mode=LS2D&mid=sec&sid1=101&sid2=310&oid=023&aid=0001988744

    내가 이 기사에 관심을 갖는 이유는, 바로 다음 대목 때문이다.

    그래도 김씨 집안에서 차례상을 준비하는 데 돈이 40여만원 든 것은 외국산 재료를 썼기 때문이다.

    40만원이라고 했다.

    자, 이번엔 또 다른 기사를 살펴보자.

    7만원으로 차례상을 차려? 무모한 도전이었네


    http://news.naver.com/main/read.nhn?mode=LS2D&mid=sec&sid1=101&sid2=310&oid=047&aid=0001946054




    이 기사에 관심을 갖는 이유는 7만원 때문이 아니다.

    김영옥씨는 “음식 가짓수를 줄이고 좀 더 싼 수입산을 사면 모를까, 차례상 차리는 데 10만 원을 가지고도 턱도 없다”며 “가족들이 먹을 음식이라 좀 신경을 쓰면 추석 음식 장만 비용이 20만원을 넘는 건 예사일”이라고 말했다. 함께 온 박순영(51)씨도 “요즘 기름값이 올라서 그런지 생선 가격이 너무 많이 올랐다”며 “그렇다고 수입산 사기는 꺼림칙하고, 물가가 너무 올라 아무리 아낀다고 해도 15만 원 이상은 들 것 같다”고 덧붙였다.

    언급되고 있는 가격대를 보자.

    “20만원을 넘는 건 예사일” 이라고 한다.

    음…

    그러니까, 차례상을 차리는데 말이지, 조선일보에서는 40만원에 해결을 한 거고, 오마이뉴스에서는 20만원선에서 해결을 했다는 것 같다. 만약 오마이뉴스에서 취재할 때 차례상 비용이 30만원을 넘기는 경우가 많았다면 “30만원을 넘는 건 예사일”이라고 하였을 테니까, “20만원을 넘는 건 예사일”이라고 했다는 것은 30만원을 넘기는 경우는 그래도 많지는 않다는 표현으로 보인다.

    물론 취재 자체는 개인을 대상으로 한 인터뷰이므로 개인차는 있을 것이다.

    하지만.

    어떻게 취재원을 찾았길래, 조선일보에서 인터뷰한 아줌마네 차례상을 차릴 돈이면 오마이뉴스에서 인터뷰한 아줌마네 차례상을 두번 차릴 수 있는 돈이 되는 것일까.

  • 4^t=2^t+k 문제 : 해결했음

    *전 세계에서 248번째로 풀었다. -_-;

    다 풀고나서 내 정답을 확인하기를 바란다. 정답은 일단 가장 끝에다가 가려둔다.

    오래간만에 수학 문제를 발견했다.

    문제의 원문은

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

    에서 찾을 수 있다.

    이 문제를 풀기 위해서 고율님의 아이디어 대로 $X=2^t$ 로 치환한다.

    그럼 주어진 식은 $X^2-X-k=0$이라는 2차 방정식이 된다. 이 2차 방정식을 풀어보자.

    $X=\frac{1}{2} \pm \frac{1}{2}\sqrt{1+4k}$

    이 된다.

    다시 X를 원래대로 치환하면

    $2^t=\frac{1}{2} \pm \frac{1}{2}\sqrt{1+4k}$

    이 된다. 그런데 $2^t$는 양수밖에 없으므로

    $2^t=\frac{1}{2} + \frac{1}{2}\sqrt{1+4k}$

    이 될 것이다. $2^t$가 정수가 되어야 한다는 조건이 있으므로, 우변도 정수가 되어야 한다. 근데 정수가 아닌 유리수인 1/2가 있기 때문에 좀 곤란해 보인다. 이 부분을 증명하고 넘어가자. 일단 1+4k가 어떤 정수의 제곱수가 아니라고 하자. 그렇다면 우변은 무리수가 되므로, 반드시 1+4k는 어떤 정수의 제곱수가 되어야만 한다. 또한, 1+4k가 어떤 정수의 제곱수라면, 1+4k는 홀수이므로 그 제곱근 역시 홀수이다. 홀수의 절반에 1/2을 더하면 정수가 나온다. 따라서 1+4k가 제곱수이기만 하면 된다. 즉, t가 파티션이 될 조건은 1+4k가 제곱수가 될 조건과 같다. 그럼 m보다 작은 k에 대해서 1+4k가 제곱수인지 조사하면 된다. 1+4k의 제곱근을 2n+1이라고 가정하자. 그럼 $1+4k=4n^2+4n+1$ 이므로 $k=n(n+1)$ 이 된다. 이 말은, $k=n(n+1)$조건을 만족하기만 하면 t는 파티션이 된다는 뜻이다. 그럼 m보다 작은 n(n+1)인 숫자들을 찾아내면 된다.

    이제, t가 양의 정수(앞으로는 그냥 정수라고 하겠다)인 경우를 생각해 보자.

    $2^t=\frac{1}{2} + \frac{1}{2}\sqrt{1+4k}$

    여기에 k=n(n+1)을 대입해 보자.

    $2^t = 1+ 2n+1 = 2(n+1)$

    이렇게 식이 변했다. 앞에 있는 2를 떼어 내고도 t가 정수가 되기 위해서는 n+1 또한 2의 거듭제곱수이면 충분하다.

    따라서 t가 perfect partition이 되기 위해서는 어떤 양의 정수 q에 대해서 $n=2^q-1$ 형태면 충분하다.

    자, 이제 m에 대해 t가 정수가 되는 k가 몇개나 되는지 따져볼 차례다.

    k=n(n+1)이었고, $n=2^q-1$ 형태였으므로, 이걸 다시 k에 대입하면

    $k=4^q-2^q$

    가 된다.

    이제, q에 1부터 하나씩 대입해 가면서 문제에서 주어진 m이 k보다 작은 경우가 몇개나 되는지 보면 된다.

    따라서, 다음의 부등식을 만족하는 최대의 q값을 구하면 된다.

    $4^q -2^q \leq m$

    정리하자면 다음과 같다.

    1.n(n+1)이 m보다 작게 되는 양의 정수 n이 몇개인지 조사한다. 이 숫자를 A(m)라고 정의한다.

    2.그러한 양의 정수 n중에서 n+1이 2의 거듭제곱수가 되는 경우가 몇개인지 조사한다. 이 숫자를 B(m)라고 한다.

    3. P(m)=A(m)/B(m) 이다.

    그런데, 반대로 생각해 보자. 어차피 k는 n(n+1)이 되기만 하면 되므로, $n=2^q-1$을 계산해서 q를 1씩 더하고, 그때마다 n이 어떻게 커지는지를 살펴보면 되지 않을까?

    어쨌거나 이 문제를 풀게 된 알고리즘은 다음과 같다.

    1. n을 계속해서 1씩 키워나간다.

    2. n+1이 2의 거듭제곱수가 되면 q를 1만큼 증가시킨다.

    3. q/n<1/12345가 되면 멈추고 n*(n+1)을 출력한다.
    출력된 값이 m의 최소값이다.

    덧붙임.

    문제 해결하는 코드를 C로 짰는데 32비트 머신에서 쓸 수 있는 숫자의 자릿수가 너무 작아서 (답이 4294967296을 넘는 것 같음) 풀지 못하였다.

    이건 뭐 페르마의 대정리도 아니고…-_-;;;;

    결론적으로.

    답이 32비트 머신에서 쓸 수 있는 숫자(4294967296)보다 많은 것은 사실이었다. 그래서 마지막 계산은 공학용 계산기를 썼다.

    정답


    정답보기

  • 청개구리 님의 글에 대한 반론

    오래간만에 물리학 떡밥을 물었다.





    1. 청개구리





      2008/09/12 00:04




      Modify/Delete




      Reply


      아 방명록이 여기 있었네요 ^_^; 먼저, 우주에서 자연적으로 발생하는 수많은 충돌과 반응들은 LHC실험과는 조금 다릅니다. 대표적으로 태양에서 발생하는 에너지도 핵융합에서 비롯되는 것이지 입자가 깨진다거나 하지는 않습니다. LHC에서는 입자를 빛의 속도에 근접하게 가속시킨 후 충돌시킵니다. 우주 어느곳에서도 빛의 속도로 날아와서 서로 충돌하는 경우도 없고, 입자가 직접 부‹H힐 확률도 제로입니다. 만약 snowall님의 말씀처럼 우주에서 더 강력한 에너지와 더 높은 빈도로 충돌과 폭발이 일어난다면 LHC실험을 하는 이유가 없어지죠. 우주 어디에서나 쉽게 관찰할 수 있을테니까요. 대부분의 기사에서도 입자들을 서로 빛의 속도로 충돌시켜 ‘빅뱅 직후의 고에너지 상태’를 재현할 수 있다고 말하고 있네요. 빅뱅이 있었는지 없었는지 모르겠지만 과학자들이 그런말을 한다는 것은 최소한 지금 이 우주에는 LHC안의 현상이 일어나지 않는다는 얘기일 겁니다.

    먼저 우주에서 자연적으로 발생하는 수많은 충돌과 반응들은 LHC실험과 본질적으로 동일합니다.

    현재 우주에 존재하는 상호작용은 4개로 제안되고 있으며, 거의 확인이 되어 절대적으로 믿어도 좋을 만큼 근거가 쌓여 있습니다. 대표적인 예로, 태양에서 발생하는 에너지가 핵융합에서 비롯되어 입자가 깨진다거나 하지는 않는다고 하셨는데, 태양 에너지가 핵융합에서 비롯된 것은 맞지만 입자가 깨지지 않는다는 것은 틀렸습니다. 핵융합에서 발생된 전자와 중성미자들은 다른 입자와 충돌하여 새로운 입자들을 만들어 냅니다. 이것은 LHC에서 일어나는 일보다 에너지 수준이 작긴 하지만 본질적으로 동일한 현상입니다.

    또한, 우주에서 입자가 빛의 속도로 날아와서 서로 충돌할 경우도 없고 입자가 직접 부딪칠 확률도 제로라고 하셨는데, 이건 명백하게 틀렸습니다. 우주에서는 아주 많은 입자들이 날아오고 있으며, 그중에는 10^20 eV의 에너지를 가지는 초 고에너지 입자선도 지구로 떨어집니다. 지구로 날아오면 당연히 지구의 대기 입자들과 충돌하며, 실제로 그 효과가 관측됩니다.

    20061122.pdf에 액세스하려면 클릭하세요.


    의 19번째 페이지를 참고하세요. 또는 구글에서 Extended Air Shower 라는 현상에 대해 검색해 보세요. 덧붙이자면, 10^20eV는 인간이 만들 수 있는 최대 에너지보다 1000만배 강력한 에너지 수준입니다. 만약 LHC 실험 때문에 미시 세계 1개가 멸망했다면 10^20 eV를 갖는 입자의 충돌에 의해 생성된 충격은 미시 세계 1000만개를 멸망시킬 수도 있습니다.

    LHC실험을 하는 이유는 우리가 통제 가능한 실험을 하기 위해서 하는 겁니다. 외부 우주에서 날아오는 입자들은 통제할 수가 없기 때문에, 강력하긴 하지만 그냥 목빠지게 기다려야 하는 단점이 있습니다. 하지만 실험장치를 이용하면 그보다는 약하지만 우리 마음대로 실험할 수 있다는 장점 때문에 LHC 실험이 의미가 있습니다.

    대부분의 신문 기사는 전혀 과학적이지 않습니다. 빅뱅 직후의 고에너지 상태를 재현하려면 실제로 우주 전체의 에너지를 전부 모아야 할 정도로 많은 에너지가 필요합니다.

    어찌되었든, LHC에서 사용되는 에너지 수준보다 훨씬 강력한 에너지 소스가 우주에 존재한다는 것은 분명합니다. 이것은 각종 입자 검출기 실험을 통해서 검증된 부분이므로 믿어도 좋습니다. 의심가신다면 High Energy Cosmic Rays에 대해서 검색해 보시기 바랍니다. LHC 따위는 그냥 장난감 물총으로 봐도 좋을 만큼 강력한 에너지 원은 우주에 널려 있습니다. 그리고 그것들이 각자 자신의 위치에서 사방으로, 무작위로 입자들을 쏘아대는데도 불구하고 이 작은 행성인 지구에는 1년에 수십개씩의 입자들이 쏟아져 내립니다. 그래도 그 초강력 입자가 적다고 하실 겁니까?





    1. 청개구리





      2008/09/12 00:17




      Modify/Delete




      Reply


      그리고 우주는 무한하지만, 동시에 하나로 연결되어있습니다. 대표적으로 양자역학 실험에서 보면 멀리 떨어진 두 입자의 반응이 동일하다는 것을 봐도 알 수 있죠. 미시세계, 거시세계라고 다를 건 없습니다. 스노우올님의 몸은 셀수없을 정도로 많은 입자로 구성되어 있고, 무한한 미시세계가 끝없이 존재합니다. 이러한 무한 우주는 바로 나 자신이기도 합니다. 어떻게 미시세계가 단지 눈에 보이지 않는다고해서 무시할 수 있을까요? 그 미시세계는 스노우올님 자신이기도 하고, LHC안에 갇혀 파괴될 운명의 수천억개의 양성자 안에도 존재하고 있는 것입니다. 쓰고나니까 마치 선문답같네요 -_-;; 별로 아는게 없지만 대략 이런 느낌입니다 =_=;;

    미시세계가 파괴되기 위해서는 거시세계가 미시세계에 영향을 미쳐야만 합니다. 명제 형태로 쓴다면, “미시세계가 거시세계에 의해 파괴되었다면, 거시세계는 미시세계에 영향을 주었다”는 참으로 받아들이셔야 합니다. 그런데, 우리가 무언가의 존재를 입증할 때에는, 우리가 어떤 수단을 통해서 그 무언가에게 영향을 줄 수 있어야만 합니다. 가령, 원자핵의 존재를 입증하기 위해서 러더포드는 전자를 금박에 때려보는 실험을 했죠. 그 실험 결과를 분석하여 원자핵의 존재를 입증했습니다. 만약 미시세계가 존재하고 그것이 거시세계에 의해서 영향을 받는다고 하면, 거시세계에서는 반드시 그 미시세계를 관찰할 수 있어야만 합니다. 만약, 관찰할 수 없다면 거시세계는 미시세계에 영향을 줄 수도 없습니다.

    가령, 어떤 물질을 관찰할 때, 그냥 만져보거나 바라보기만 하면 우리는 그 물질이 분자로 이루어져 있다는 사실을 모릅니다. 그냥 물질의 연속체로서 관찰될 뿐입니다. 이런식으로 관찰한다면, 분자는 관찰되지 않으며 없는 것이나 마찬가지입니다. 또한, 분자는 우리라 만질 수 있는 세계나 눈으로 관찰하는 세계에 전혀 영향을 주지 않습니다. 하지만 좀 더 강력한 현미경을 사용하고, 분자에 대한 적절한 가설을 세운 후 그것을 검증해 나가다 보면 물질이 사실은 분자라고 하는 작은 알갱이로 이루어져 있다는 것을 알 수 있습니다. 이것은 분자에 영향을 줄 수 있는 실험을 하였기 때문입니다. 이것을 화학이라고 합니다. 화학 실험은 전부 분자에게 영향을 주는 실험으로 구성됩니다. 그럼, 화학에서 쿼크는 존재할까요? 화학에서는 쿼크는 있으나 없으나 관계 없습니다. 화학에서는 분자가 원자로 구성된다는 것 까지만 알고 검증하면 그걸로 끝일 뿐, 그보다 더 미시세계인 쿼크의 존재성은 알 필요가 없습니다. 왜냐하면 화학적 에너지로는 쿼크에 아무런 영향을 줄 수 없기 때문이죠. 반대로, 쿼크 역시 화학 실험에는 아무런 영향을 주지 않습니다.

    따라서, 관찰되지 않을만큼 충분히 작은 미시세계가 거시세계의 실험에 의해 파괴될 수 있다는 것은 그 자체로서 논리적인 모순을 발생시킵니다. 미시세계가 거시세계의 실험에 의해 파괴되었다면, 그것은 반드시 관찰되어야만 하기 때문입니다. 반대로, 관찰되지 않을만큼 충분히 작다면, 미시세계는 거시세계의 실험에 의해 결코 파괴될 수가 없습니다.

    이러한 것이 존재하는가 아닌가에 대한 논쟁은 빛을 전달하는 매질인 “에테르(Aether)”의 존재성에 관한 실험에 잘 나타납니다. 마이켈슨과 몰리의 실험을 자세히 살펴보면, 빛은 에테르를 필요로 하지 않음을 증명할 수 있습니다. 아인슈타인의 상대성 이론은 결코 에테르의 존재성 자체를 부정한 것이 아닙니다. 다만, 빛의 특징을 전부 설명하는데 있어서 에테르가 단 한번도 등장할 이유가 없고, 따라서 에테르는 그냥 있든 없든 우리 세계에 전혀 영향을 주지 않음을 증명한 것일 뿐입니다. (적어도 전자기학에는 영향을 주지 않는다는 것입니다.)

    우리는, 어떤 것을 관찰하기 위해서 만져봐야 합니다. 만져지지 않는다면, 그것은 없는 것과 마찬가지이고, 만지지 않았는데 뭔가가 변한다는 것은 논리적인 모순입니다. 이해 하시겠습니까?

  • 촛불집회의 배후세력

    뉴스를 보니까, 촛불집회에 참가한 사람들이 약 93만명이라는 통계가 나왔다.

    중복되어 세어진 사람도 많을 것이고, 실제로는 연인원으로 따지면 더 많이 참가했을 것이기에 그냥 순인원으로만 쳐도 100만명이라고 가정하는 것이 그리 많이 틀리지는 않을 것 같다.

    그럼, 촛불집회의 배후세력은 누구일까.

    우리나라에서 가장 큰 조직은 군대다. 60만명 이상의 인원을 한번의 명령으로 움직일 수 있다. 그러나 군인들이 촛불집회에 참가했을 가능성은 전혀 없으므로 배후세력은 군대가 아니다.

    그 다음은?

    우리나라에서 100만명을 3개월간 동원할 수 있는 조직이 과연 어디가 있을까?

    네이버?

    다음?

    회원수 100만명이 넘는 포털 사이트?

    종각역에 가보면, 평화통일을 위한 국민 서명을 받는 분들이 있다. 이분들은 지금 몇년째 서명을 받고 계신데, 몇년째 5만명 정도 받았다. 천만명이 넘는 인구가 모인 서울에서, 그것도 인구가 가장 많이 돌아다니는 곳 중의 하나인 종각에서 겨우 5만명이 서명했다는 것은 그만큼 사람들의 뜻을 모으기가 힘들다는 것이다.

    그런 사람들 100만명이 모였다. 그럼, 그건 어떤 배후세력에서 동원한 것일까?

    청와대에서 이씨 아저씨는 이렇게 말하겠지. “우리를 음해하려는 세력이 있어요”

    진실은 저 너머에…

  • 교통비

    내가 1km를 가는데 들여야 하는 “비용”은 어떻게 계산할까?

    물론 이 비용은 교통수단마다 다르다.

    내게 있어 실제적인 지출에 해당하는 것은 “시간”과 “돈”이므로, 시간과 돈을 곱한 값을 “비용”으로 처리해야 할 것이다. 물론 시간가치를 돈으로 환산해서 합산해도 되지만, 이 경우에는 곱셈이 맞다고 본다. 왜냐하면 돈을 아주 많이 들인다고 시간이 0이 되는 것도 아니고, 시간이 아주 오래 걸린다고 해서 돈이 0원이 들어가는 것도 아니기 때문에, 0이 아닌 “비용”을 사용했다면 반드시 둘 다 0이 아니어야 하기 때문이다. 또한, 절충한답시고 덧셈과 곱셈을 같이 쓰는 건 다음과 같이 의미가 없다. 돈을 $m$이라고 하고 시간을 $t$라고 하면

    $m+t+m*t = m+t+m*t +1 -1 = m*(1+t)+t+1-1 = (m+1)*(t+1)-1$

    이 되어서 대략 곱셈에 비례하게 된다.

    그럼, 대략 방정식을 세워보면

    $m*t=C$

    여기서, $C$는 비용이 되겠다. 비용은 다시 다른 방법으로 계산해야 하는데

    $C=C(기름값, 교통비, 시간, 교통량, 속력 )$

    등등의 함수가 될 것이다. 물론 이때 교통비는 다시 기름값과 시간의 함수로 표현된다.

    이제, 이것을 Action으로 두고 최적화 시키는 것을 써 보자.

    $L(m, \dot{m}, t)=C-m*t$

    $\frac{\partial L}{\partial_m}-\frac{d}{dt}\frac{\partial}{\partial_{\dot{m}}}$

    그럼 이제 $m(t)$를 구할 수 있다.

    주의 : 난 물리학 전공이지 경제학 전공이 아니므로 위 내용이 맞는 내용인지는 보증하지 못한다.

  • Fade in 옵션

    윈도 XP에서는 컨텍스트 메뉴나 메뉴를 띄울 때 페이드 효과를 옵션으로 켜고 끌 수 있었다. 난 효과가 즉각적으로 나타나는 것을 좋아하기 때문에 항상 페이드 효과는 꺼 둔다. 근데 비스타는 페이드 효과를 끌 수가 없다. -_-;

  • 죽고 싶나?

    죽고 싶을 때 살아보는 것도 용기다.

  • 파라파라 퀸

    파라파라 퀸

    (소유진)

    show me now show me now 내 작은맘엔

    언제나 언제나 꿈이 있어

    당신의 어떤말도 내겐 들리지 않아 왜 몰라요 워우워~

    tell me now tell me now 말하지 너는

    아니야 아니야 넌 아직아냐

    하지만 난 알아 꿈은 누구나 가질 수 있는걸

    언제나 나를 위한 세상은 춤추고 노래하고 싶을뿐인데

    그런 내가 당신눈엔 그저 귀여울 뿐인가요 오~

    내맘속엔 언제나 항상 꿈꾸던 미래의 난 이제 현실이죠

    세상에 나를 맞추기 싫어 그대앞에 나를 봐요 이제~

    come on baby 세상을 내게 맞추고말죠 난 할수있어

    두렵지않죠 꿈이 있는한 당신앞에 나를 봐요

    Forever~ I wanna be a star~

    show me now show me now 나를 믿어요

    이제나 저제나 하겠지만

    하늘의 별따기라 해도 나라면 별을따고 말죠

    언제나 나를 위한 세상은 춤추고 노래하고 싶을 뿐인데

    그런 내가 당신눈엔 어리석을 뿐인가요 오~

    내맘속엔 언제나 항상 꿈꾸던 미래의 난 이제 현실이죠

    세상에 나를 맞추기 싫어 그대앞에 나를 봐요 이제~

    come on baby 세상을 내게 맞추고말죠 난 할수있어

    두렵지않죠 꿈이 있는한 당신앞에 나를 봐요

    Forever~ I wanna be a star~

    show me 내맘이 원하는대로만 갈수는 없나요 나를 봐요

    이룰 수 없는 꿈은없죠 지금나는 무대에 서서 그댈봐

    내맘속에 언제나 항상 꿈꾸던 미래의 난 이제 현실이죠

    세상에 나를 맞추기싫어 그대 앞에 나를 봐요 이제~

    come on baby 세상을 내게 맞추고말죠 난 할수있어

    두렵지않죠 꿈이 있는한 당신앞에 나를 봐요

    Forever~ I wanna be a star~

  • 그래서, 만들어본 삼각형 내부에 있는 점 판정하기 소스

    C로 만들어 보았다. 아는게 C밖에 없으니…-_-;

    #define TRUE 1

    #define FALSE 0

    typedef struct {

    double x;

    double y;

    } point;

    typedef struct {

    double a;

    double b;

    double c;

    } line;

    typedef struct {

    point t1;

    point t2;

    point t3;

    } triangle;

    line lineDeclaration(point p,point q){

    line l;

    l.a=q.y-p.y;

    l.b=p.x-q.x;

    l.c=p.y*q.x-p.x*q.y;

    return l;

    }

    double lineSubstitution(point p, line l){

    return l.a*p.x+l.b*p.y+l.c;

    }

    double lineMultiplication(point p, point q, line l){

    return lineSubstitution(p, l)*lineSubstitution(q,l);

    }

    point mediumPoint(point p, point q){

    point r={(p.x-q.x)/2.0,(p.y-q.y)/2.0};

    return r;

    }

    int triangleInteriorPoints(point p, triangle t){

    point side[3];

    side[0].x=t.t1.x;

    side[0].y=t.t1.y;

    side[1].x=t.t2.x;

    side[1].y=t.t2.y;

    side[2].x=t.t3.x;

    side[2].y=t.t3.y;

    int i=2;

    int justify=0;

    line l;

    line m;

    while(i){

    l=lineDeclaration(side[i%3],side[(i+1)%3]);

    m=lineDeclaration(side[(i+1)%3],side[(i+2)%3]);

    if(

    lineMultiplication(p, mediumPoint(side[(i+2)%3],side[i]), l)>0 &&

    lineMultiplication(p, mediumPoint(side[(i+2)%3],side[i]), m)>0){

    justify++;

    }

    i–;

    }

    if(justify==3){

    return TRUE;

    }

    else{

    return FALSE;

    }

    }

    이건 헤더 파일이다. 테스트용 코드는 다음과 같다.

    #include

    #include

    #include”triangle.h”

    #include

    #include

    int main(int argc, char* argv[]){

    if(argc==1){

    printf(“ERROR. There are no inputs.\n Usage : %s file1 file2\n file1 includes triangle data\n file2 includes points data\n”, argv[0]);

    exit(1);

    }

    FILE *TRIDATA;

    FILE *POINTDATA;

    if(!(TRIDATA=fopen(argv[1], “rt”))){

    printf(“ERROR. %s does not exists.\n”,argv[1]);

    exit(1);

    }

    if(!(POINTDATA=fopen(argv[2],”rt”))){

    printf(“ERROR. %s does not exists.\n”,argv[2]);

    exit(1);

    }

    char buf1[200];

    char **buffer1;

    char buf2[200];

    char **buffer2;

    int i=0;

    while(!feof(TRIDATA) && !feof(POINTDATA)){

    fgets(buf1,200, TRIDATA);

    fgets(buf2,200,POINTDATA);

    buffer1=g_strsplit(buf1, “,”, 6);

    triangle tri;

    tri.t1.x=atof(buffer1[0]);

    tri.t1.y=atof(buffer1[1]);

    tri.t2.x=atof(buffer1[2]);

    tri.t2.y=atof(buffer1[3]);

    tri.t3.x=atof(buffer1[4]);

    tri.t3.y=atof(buffer1[5]);

    buffer2=g_strsplit(buf2, “,”,2);

    point po;

    po.x=atof(buffer2[0]);

    po.y=atof(buffer2[1]);

    printf(“%d,%d\n”,triangleInteriorPoints(po, tri),i++);

    g_strfreev(buffer1);

    g_strfreev(buffer2);

    }

    return 1;

    }

    그리고 컴파일 명령어는 다음과 같다.

    gcc `pkg-config –cflags –libs glib-2.0` -o triangle triangle.c

    glib2가 있어야 컴파일 된다는 점에 주의하여야 한다.

    사용법은 다음과 같다.

    Usage : ./triangle file1 file2

    file1 includes triangle data

    file2 includes points data

    triangle data는 콤마(,)로 구분된 6개의 실수가 들어가고, points data는 콤마로 구분된 2개의 실수가 들어간다.

  • 이명박의 5개 방송사 출연

    이명박이 추석 특집으로 5개 방송사에 동시에 등장한댄다. -_-;;

    미치겠다.

    아니, 지지율에 얼마나 자신이 없으면 다른 방송 프로그램과의 시청률 경쟁도 못하나?

    장담컨대, 이건 이 프로그램 방송하는 방송사는 100%의 가능성으로 광고비 못 따먹기 때문에 같이 죽자는 심정으로 5개 방송사가 연합해서 모두 방송하기로 했을 것이다.

    왜, 이명박씨, OCN에는 안나오나?

    진짜 영화같은 국민과의 대화가 될텐데.