「大規模な数学的問題 - 無限のビジョン」、18ページイアンスチュワートはユークリッドの命題2、要素VIIIを参照しました。これは非常に基本的な除数を見つける基本的な方法です。私は引用しています。これは、大きい方の数字から小さい方の数字を繰り返し減算した後、同様の処理を残りの数字と小さい数字に適用し、残りがなくなるまで続きます」例は630と135です。135は630(495,360,225)から再差し引かれ、最終的に135より小さい90が得られます。したがって、数値は逆になり、最終的には90から減算され、最終的に45次に90から45を減算し、最後に0を得てgcdを45にする。これは、gcdを見つけるユークリッドアルゴリズムと呼ばれることもあります。Pythonでのユークリッドアルゴリズム(減算)
初心者(10歳の子供)を教えるには、コードをPythonで記述する必要があります。関数定義は存在してはいけません。また、減算以外の数学演算も使用する必要はありません。 if/while/else/elif/continue/breakを使いたいです。 3つの数字(またはそれ以上)が与えられれば、全体のプログラムはより小さなものを決めることを繰り返さなければならないという規定があるはずです。 gcdの以前のチェーンでは、この観点からアルゴリズムが見えません。 pythonであなただけの直接の分画モジュールが提供するGCD関数を使用すると思い、実際には
def gcd(x, y):
while y != 0:
(x, y) = (y, x % y)
return x
:GCDアルゴリズムに
私はPythonで(拡張)ユークリッドアルゴリズムの何千もの実装があると信じています。どちらをチェックしましたか?何が彼らに間違っていたのですか? –
さて、 'gcd'(' sin'、 'cos'、' max'、 'min'など)はおそらく関数でなければなりません。数学では 'gcd(1,3,5)'と書いています。これは単なる関数呼び出しです。 – ForceBru
私はそのアルゴリズムの具体的な要件について言及しました。私は教育的理由からそれに固執する。私はそれに会った人は誰も見つかりませんでした最初の段落で述べたように、「減算」ではなく「除算」に関心を持って利用可能なもの。私は参照ができればうれしいでしょう - Andrea Corbelini – Biplab