goo blog サービス終了のお知らせ 

TakaPの数学日記

数学を教えていて感じたことや日常の感想などを記録しました。

選択数学から(最大公約数の利用)

2006年06月04日 12時07分48秒 | 数学
 修学旅行の次の日、選択数学の授業で、最大公約数を利用する問題を扱った。

最大公約数を利用する問題
  例 縦48cm,横60cmの長方形があります。この長方形を同じ大きさのできるだけ大きな正方形で敷き詰めたいと思います。1辺が何cmの正方形で敷き詰めれば良いですか。

  解答 1辺をx cmとすれば,x は48も60も割り切ることが出来る数ですから,48と60の公約数です。その中でもっとも大きい数ということから,48と60の最大公約数であることが分かります。48と60の最大公約数を求めて,12
                                 答 12cm  

 最大公約数を求めるのに、素因数分解を使うのが普通だが、
例えば1271と1517の最大公約数を求めることは難しい。
 そこで上のような応用問題を扱って、「互除法」を教えたいと思った。


 できるだけ大きな正方形で敷き詰めることを考えるのに、別の方法を考える。
 まず縦48cm横60cmの長方形の中に、出来るだけ大きな正方形を敷く。



  当然1辺が48cmの正方形を敷くことができる。正方形はさらに小さな同じ大きさの正方形で敷き詰めることができるから、残った長方形48cm×(60-48)cmつまり、右側の48cm×12cmの長方形が、同一のしかも最大の正方形で敷き詰めることができれば良い。
 
 ところで48cm×12cmの長方形は48÷12=4であまりがないから、
12cm×12cmの正方形4つでちょうど敷き詰められる。



 したがって、48と60の最大公約数は12と分かります。

  この原理を使って、4187と4661の最大公約数を求めてみました。
 授業では、黒板に図をかきながら説明しましたが、図が難しいので、ここでは文と式で説明します。

 まず長方形で長い方の辺を縦、短い方を横と決めます。

1.(縦)÷(横)  4661÷4187=1 余り 474
  縦474 横4187 の長方形が残り、この長方形を1辺が474の正方形で敷き詰めます。

2.(横4187)÷(縦474)=8 余り 395
 縦395 横474 の長方形が残り、この長方形を1辺が395の正方形で敷き詰めます。

3.(横474)÷(縦395)=1 余り 79
 縦79 横395 の長方形が残り、この長方形を1辺が79の正方形で敷き詰めます。

4.(横395)÷(縦79)=5 余り 0 でちょうど割り切れます。
  79が4187と4661最大公約数です。
(実際に図をかいて確かめてみて下さい。)
 
  実際 4187=79×53
      4661=79×59

このように素因数分解出来るのですが、こんな素因数見つかりませんよね。


  そこで問題(今年度 お茶の水女子大附属高校で出題)

1271 1517 の最大公約数を求めよ。


この授業を受けた生徒の感想(授業ではここはプリントを使わず余談とした、この次、図を含めたプリントで実際に互除法を教える予定です。)
・最大公約数を求める面白いやり方を知れてよかったです。
・簡単に求められるやり方が分かって良かった。数が大きいと求めるのが大変になると思った。
・最大公約数は素因数分解以外でも求められることが分かった。

簡単に求められるやり方が分かって良かった。と答えた生徒は互除法ではなくて最大公約数を、次のようにして求めるやり方が分かったのかも知れない。
このやり方は、一つ前の授業でやった。  

    2) 48  60    
    2) 24  30
    3) 12  15
        4   5

 素因数分解が困難な数はこの方法では出来ないので、互除法を使う。
この方法は「ユークリッドの互除法」という。それにしても、面白い方法を古代人は考え出したものである。
コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

プログラム解析中

2006年06月04日 09時40分30秒 | 数学
 2次無理数の連分数展開のプログラム(十進Basic)はUBASICに附属していたプログラムを単に移植しただけなので、アルゴリズムがよく分からない。今その解析をやっているところ。プログラム中分からないのは、repeatのあと。行番号200のところの意味がまだよく分からない。誰か教えて下さい。
 このプログラムは、わけが分からないまま移植して、同じ結果(UBASICと)が出せたのですから、間違いはないと思います。

(再掲行番号200から)

200 ! repeat
210 LET k=INT((qn+a)/c)   これは何となくOK
220 PRINT k;
230 LET a=c*k-a       ここが分からない!
240 LET c=INT((n-a^2)/c)   これも!
250 IF (a<>a1)OR(c<>c1) THEN GOTO 200
260 PRINT "]"
270 PRINT
280 GOTO 110
290 !
500 PRINT qn;"の2乗です。"
510 PRINT
520 GOTO 110
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする