「ユークリッドの互除法」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
'''ユークリッドの互除法'''([[英語]]:euclidean algorithm)とは、2個の正の[[整数]]の[[最大公約数]]を比較的高速に求める[[アルゴリズム]]である。
+
'''ユークリッドの互除法'''とは、2個の正の[[整数]]の[[最大公約数]]を比較的高速に求める[[アルゴリズム]]である。
  
 
==実装例==
 
==実装例==
===C言語===
+
===シンプルな実装===
[[C言語]]によるシンプルな実装。
 
 
<source lang="c">
 
<source lang="c">
int gcd(int a, int b) {
+
int gcd(int a,int b) {
    return b == 0 ? a : gcd(b,a%b);
+
return b==0?a:gcd(b,a%b);
 
}
 
}
 
</source>
 
</source>
  
C言語による[[再帰]]を使わない実装。
+
===再帰を使わない実装===
 
<source lang="c">
 
<source lang="c">
int gcd(int a, int b) {
+
int gcd(int a,int b) {
    if (a <= 0 || b <= 0) {
+
if(a<=0 || b<=0)return 0;
        return 0;
+
while(b>0) {
    }
+
int t=a%b;
    while (0 < b) {
+
a=b;
        int t = a % b;
+
b=t;
        a = b;
+
}
        b = t;
+
return a;
    }
 
    return a;
 
 
}
 
}
 
</source>
 
</source>
  
===Haskellによる実装例===
+
===[[Haskell]]による実装===
[[Haskell]]で書くとこんな感じである。
 
 
<source lang="haskell">
 
<source lang="haskell">
 
gcd a b = if b<=0 then a else gcd b (mod a b)
 
gcd a b = if b<=0 then a else gcd b (mod a b)
</source>
 
 
===OCamlによる実装例===
 
[[OCaml]]で書くとこんな感じである。
 
<source lang="ocaml">
 
let rec gcd a = function
 
    | 0 -> a
 
    | b -> gcd b (a mod b);;
 
</source>
 
 
===F#による実装例===
 
[[F Sharp|F#]]で書くとこんな感じである。
 
F#は[[OCaml]]から派生した[[プログラミング言語]]なのでほとんど違いはない。
 
違いは[[除算]]の[[演算子]]が「mod」ではなく「%」なくらいである。
 
<source lang="fsharp">
 
let rec gcd a = function
 
    | 0 -> a
 
    | b -> gcd b (a % b);;
 
 
</source>
 
</source>
  
52行目: 30行目:
 
* [[最大公約数]]
 
* [[最大公約数]]
 
* [[最小公倍数]]
 
* [[最小公倍数]]
 
[[category: アルゴリズム]]
 
[[category: 算数]]
 

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)