- ベストアンサー
ユークリッドの互除法とは?求まるべき空欄について
- ユークリッドの互除法は自然数xとyの最大公約数を求めるためのプログラムです。
- センター試験の問題では130~150行目が空欄になっていて、その部分に当てはまるものは何か問われています。
- ユークリッドの互除法では、130行目から150行目は以下のようになります。LET Z=X、LET X=Y、LET Y=Zとなります。この部分は考えて求める必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
BASICというプログラム言語を一通り勉強していなければ,この問題は難しいです。 たたし,ある程度の数学の素養がある人なら,BASICの文法はすぐに(数日?)覚えられます。 ご質問のプログラムは以下の内容です。 100-110 2数X,Yを入力する。 120-160 必要なら2数を入れ替えて,X≧Yとなるようにする。 170-200 Y=0だったら,答えをXとして,停止する。 210-230 XからYを何回か引き,X÷Yの余りをRとする。 240-260 Y,Rを新しい2数X,Yとして,170以下を繰り返す。 先の回答者さんから解説あったように, 130-150はXとYを入れ替える操作です。 これは,一種のテクニックなので 「覚えておく」性質のものでしょう。 あと,数学を知っている人が,プログラム言語を学ぶときに混乱するのが,代入文です。 LET A=B という文は,右辺Bを計算した値を,変数Aに代入する。 という操作を表します。 古典的なBASICでは LET を付けるので,変数AをBと等しくせよ, の意味がまだ分かりやすいですが, 単に A=B と書いて代入を表す言語もあります。
その他の回答 (1)
- info22_
- ベストアンサー率67% (2650/3922)
>即答できねばいけないものなのでしょうか。 まず「ユークリッドの互除法という自然数x,yの最大公約数を求めるためのプログラム」 この互除法の仕組みが分かっていることが前提です。分かっていなければ、即答など無理でしょう。分かっていれば、該当の3行で、どういう操作をすればいいかは、即答できないといけないでしょうね。つまり、「XとYの内容を交換する」操作だと分からないといけないですね。 >それともこの部分は考えて求められるものなのでしょうか。 「XとYの内容を交換する」操作だということは考えて求められる以前の問題ですね。すぐ分からない(思い出さない)といけないですね。 >もし後者であれば、その考える道筋を解説していただきたいです。 「XとYの内容を交換する」操作は、直接出来ないので、一時的に第3の変数(ここではZだが、他の変数でも良い)を仮の置き場(記憶場所)を使って、交換します。これは良く使われる操作です。 >130~150行目は >130 LET Z=X >140 LET X=Y >150 LET Y=Z >と、即答できねばいけないものなのでしょうか。 即答できないと駄目ですが、答えは1通りではありませんね。 130 LET Z=Y 140 LET Y=X 150 LET X=Z 130 LET W=Y 140 LET Y=X 150 LET X=W など でも良いでしょう。