Differences between revisions 6 and 7
Revision 6 as of 2018-10-10 14:53:44
Size: 2829
Comment:
Revision 7 as of 2018-10-12 06:58:37
Size: 2946
Comment:
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
<<TableOfContents>>
[[../BP_007a/Contents|*]]

<<Include(../BP_007a/Contents)>>
[[../BP_007a/Contents|*]]
----

基本問題(7)

*


概要

[ edit ]

*


ヒント

この課題で使うPythonの機能 (学習のヒント)

[ edit ]

  • この課題で使うPythonの機能 (学習のヒント) ...
    • 関数定義

    • print()関数

      • キーワードパラメータsepは区切り文字列,キーワードパラメータendは行末文字列です.

この課題の解き方 (問題解決のヒント)

[ edit ]

  • この課題の解き方 (問題解決のヒント) ....
    • 最小公倍数lcmは,最大公約数から求めることができます.

    • 正整数 xに対して,gcd(x,y) × lcm( x, y ) == x × yという関係があります

      • したがってgcdが分かれば,lcmを簡単に求めることができます
    • 関数lcm()を定義してください.
*


実行例

[ edit ]

  • 実行例(1) ... クリックすると拡大します

fig-01

*


プログラム例: 本質的な部分 (授業中に順次公開します)

[ edit ]

  • 解答は基本的に,下記 2 行の関数です.
    • 最大公約数から求めることができます.

    • 正整数 xに対して,gcd(x,y) × lcm( x, y ) == x ×  yという関係がある

      • したがってgcdが分かれば,lcmを求めることができる

   1 def lcm( x, y ):
   2     return( int( x * y / math.gcd( x, y ) ) )
*


高度な話題 (授業中,もしくは授業後に順次公開します)

[ edit ]

  • 高度な話題へのリンク: 授業の流れを阻害しないように別ページにします

    • (後日の回の授業内容にはなる可能性がありますが,この回の授業内容には含めません).
    • に関するものです.


プログラム例: 配布コード (授業中に順次公開します)

*

*

  • 演習(7)

    基本課題(7a)

    【関数定義】

    最小公倍数 lcm ( least common multiple )

    BP_02_007a_least_common_multiple.py

  • 解答は基本的に,下記 2 行の関数です.
    • 最大公約数から求めることができます.

    • 正整数 xに対して,gcd(x,y) × lcm( x, y ) == x ×  yという関係がある

      • したがってgcdが分かれば,lcmを求めることができる

   1 def lcm( x, y ):
   2     return( int( x * y / math.gcd( x, y ) ) )

   1 #!/usr/bin/env python
   2 # -*- coding: utf-8 -*-
   3 # ==============================================================================
   4 # * Copyright (c) 2018 IIJIMA, Tadashi
   5 # *       (IIJIMA Laboratory, Dept. of Science and Technology, Keio University).
   6 # ==============================================================================
   7 # ソフトウェア工学[02] 基本課題[02]-(007a)  BP_02_007a_least_common_multiple.py
   8 # BP(Basic Problem) 02-007a: 【関数定義】 【関数定義】 最小公倍数 lcm ( least common multiple )を求める関数を定義する
   9 #        2018-10-03 飯島 正 (iijima@ae.keio.ac.jp)
  10 # ==============================================================================
  11 # ----- 数学関数を取り扱うためのmathモジュールをインポートする ------
  12 import math
  13 # ==============================================================================
  14 # ===== 【関数定義】 最小公倍数 lcm ( least common multiple )を求める関数 =====
  15 def lcm( x, y ):
  16     return( int( x * y / math.gcd( x, y ) ) )
  17 # ==============================================================================
  18 # ===== 【メイン・プログラム】  =====
  19 # ----- オープニングメッセージ -----
  20 print( "最小公倍数数LCMを求めるを求める (二つの整数を入力してください): " )
  21 
  22 # ----- パラメータの入力 -----
  23 x = int( input( "  一つ目の整数を入力してください>>> " ) )
  24 y = int( input( "  二つ目の整数を入力してください>>> " ) )
  25 
  26 # ----- 結果の表示 ----
  27 print( lcm( x, y ) )
  28 # ==============================================================================


SoftEng: Python/Prog/Practice/Basic/02/BP_007a (last edited 2018-10-28 14:44:37 by TadashiIijima)