Article View: fj.lang.c
Article #361Re: 2点間の距離を求める
From: Sugihara Yoshimi
Date: Tue, 21 Apr 1998 00:00
Date: Tue, 21 Apr 1998 00:00
42 lines
1873 bytes
1873 bytes
sugiharaです。
Seiji Suzuki wrote in message
<6hekgm$ojc$1@tequila.rel.crl.fujixerox.co.jp>...
>In article <6hdaib$chb$1@news1.kcom.ne.jp>
>sugihara@mb.kcom.ne.jp writes:
>
>>> long型であらわされた座標(x、y)で、2点間の距離を浮動小数点を使
わず
>>> に求める方法はないでしょうか?
>
> ニュートンほおぅっと書こうとしたんですが、あれは微分で平方根がいりま
>したね。それなら、素直に開平方してはいかがでしょう。10 進数の開平方と
>違って、2 進の開平方はとっても簡単です。ちょっと組んでみましたので、
>デバッグと最適化はそちらでやって下さい。
>
>#include <stdio.h>
>#include <stdlib.h>
>
>#define BIT_PER_BYTE 8 /* 1 byte あたりのビット数 */
>#define OP_SHIFT 2 /* 2 ビットずつ解決するから */
>
> 中略
>
>int main( int argc, char *argv[] ){
> printf( "sqrt(%d) ~= %d\n" , atoi( argv[1] ),
sqrint( atoi( argv[1] )));
> return 0;
>}
>
> ちなみに、負の数でもとにかく答えを出す、というのと、答えの小数点以下を切り
>捨てるというのはバグではなく仕様です。
やってみました。
おお!!速い!!
コードはそのまま使わせていただきました。
ありがとうございました。
Technical Details
Message-ID:
<6hgsda$q3f@news.kyosai.or.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<6hdaib$chb$1@news1.kcom.ne.jp> <6hekgm$ojc$1@tequila.rel.crl.fujixerox.co.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 106434,5e6daae5d04bdee4 X-Google-Attributes: gid106434,public From: "Sugihara Yoshimi" <sugihara@kyosai.or.jp> Subject: Re: 2点間の距離を求める Date: 1998/04/21 Message-ID: <6hgsda$q3f@news.kyosai.or.jp> X-Deja-AN: 346156036 Content-Transfer-Encoding: 7bit References: <6hdaib$chb$1@news1.kcom.ne.jp> <6hekgm$ojc$1@tequila.rel.crl.fujixerox.co.jp> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-2022-jp" X-MimeOLE: Produced By Microsoft MimeOLE V4.71.1712.3 Organization: HIROSHIMAKEN CHUSYOKIGYO KYOSAI coop., Newsgroups: fj.lang.c