01.アルゴリズム(Algorithm)


1.アルゴリズムとは?



アルゴリズム:いかなる問題を解決するために制定された一連のステップ
正しいアルゴリズムは「いずれの場合も実行結果は同じ」です.アルゴリズムの実行結果が場合によっては正しいが、場合によっては間違っている場合は、正しいアルゴリズムとは言えない.

2.アルゴリズムの例


1)3つの整数の最も値のアルゴリズムを求めます

def max3(a, b, c):
    maximum = a
    if b > maximum: maximum = b
    if c > maximum: maximum = c
    return maximum

print(f"max3(1,2,3) = {max3(1,2,3)}")
print(f"max3(1,3,2) = {max3(1,3,2)}")
print(f"max3(2,1,3) = {max3(2,1,3)}")
print(f"max3(2,3,1) = {max3(2,3,1)}")
print(f"max3(3,1,2) = {max3(3,1,2)}")
print(f"max3(3,2,1) = {max3(3,2,1)}")


>>> max3(1,2,3) = 3
    max3(1,3,2) = 3
    max3(2,1,3) = 3
    max3(2,3,1) = 3
    max3(3,1,2) = 3
    max3(3,2,1) = 3 
  • max 3()関数に任意の値を入力すると、最適値がよく求められます.
  • 2)連続整数の和を求めるアルゴリズム

    def sum_atob(a, b):
        sum = 0
        for i in range(a, b+1):
            sum += i
        return sum
    
    print(f"sum_atob(1,2) = {sum_atob(1,2)}")
    print(f"sum_atob(1,3) = {sum_atob(1,3)}")
    print(f"sum_atob(1,4) = {sum_atob(1,4)}")
    print(f"sum_atob(1,5) = {sum_atob(1,5)}")
    
    
    >>> sum_atob(1,2) = 3  
        sum_atob(1,3) = 6  
        sum_atob(1,4) = 10  
        sum_atob(1,5) = 15  
  • sum atob()関数にどんな値を追加しても、連続整数の和をうまく求めることができます.
  • 3)3つの整数の中心値を求めるアルゴリズム

    def med3(a, b, c):
        if a>=b:
            if b>=c:
                return b
            elif c>=a:
                return a
            else:
                return c
        elif a>=c:
            return a 
        else:
            if c>=b:
                return b
            else:
                return c
                
    print(f"med3(1,2,3) = {med3(1,2,3)}")
    print(f"med3(1,3,2) = {med3(1,3,2)}")
    print(f"med3(2,1,3) = {med3(2,1,3)}")
    print(f"med3(2,3,1) = {med3(2,3,1)}")
    print(f"med3(3,1,2) = {med3(3,1,2)}")
    print(f"med3(3,2,1) = {med3(3,2,1)}")
    print(f"med3(1,1,2) = {med3(1,1,2)}")
    print(f"med3(1,2,1) = {med3(1,2,1)}")
    print(f"med3(2,1,1) = {med3(2,1,1)}")
    print(f"med3(1,1,1) = {med3(1,1,1)}")  
    
    
    >>> med3(1,2,3) = 2
        med3(1,3,2) = 2
        med3(2,1,3) = 2
        med3(2,3,1) = 2
        med3(3,1,2) = 2
        med3(3,2,1) = 2
        med3(1,1,2) = 1
        med3(1,2,1) = 1
        med3(2,1,1) = 1
        med3(1,1,1) = 1 
  • med 3()関数に任意の値を入力すると、中心値がよく求められます.