[アルゴリズム]アルゴリズムベース1


アルゴリズムベース入門のために学ぶDO IT!資料構造とともに学ぶアルゴリズム入門:Python編で新しい知識をまとめる

1.浮動小数点方式


これは、コンピュータ上でエラーを近似値で表すための方法です.
https://velog.io/@gsh723/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B6%80%EB%8F%99-%EC%86%8C%EC%88%98%EC%A0%90-%EB%B0%A9%EC%8B%9D

2.「正しいアルゴリズム」とは?


:いずれの場合も実行結果は同じです.

3.アルゴリズム


3-1. 3つの整数の中心値を求めます

[1번 방식] a, b의 순서를 정하고 (a, b) 두 수를 기준으로 c가 어디에 위치(앞, 뒤, 사이)할 지 정한다.

def med(a, b, c):
  if a>=b : 
    if b >=c : return b
    elif c>=a : return a
    else : return c
  elif c>=b : 
    return b
  elif a>=c :
    return a
  else :
    return c
    
[2번 방식] 1번 방식보다 코드 길이는 짧으나, if와 elif에서 비교하는 조건이 같은 것들이 있어 '비효율적'이다.

def med2(a,b,c):
  if (a>=b and b>=c) or (a<b and c>=b): return b;
  elif (a>=b and c>=a) or (a<b and a>=c):return a;
  else : 
    return c;

3-2. げんすいじょうけんぶん

[기존 코드] n번 for문 돌 동안 계속 조건 확인해야해서 효율 떨어진다.
for i in range(1,n+1):
	if i%2 :
    	print('+',end="")
    else :
    	print('-',end="")
        
[성능 높인 코드]
for _ in range(n//2):
    print('+-',end="")
if n%2 == 1: 
	print('+', end="")

3-3. 繰り返し文をスキップ

  • break:含む重複文を停止
  • continue:今回をスキップし、次から
  • を繰り返す

    4.数式


    4-1. ガウス法


    (n * (n+1)) // 2


    :1~nの合計

    4-2. デモルガンの法則


    "no >= 10 and no <= 99 "
    "not(no <10 or no >99) "
    上の2つは同じです!

    4-3. 整数の生成


    import random
    random.randint(a,b)

    5.Pythonの特徴


    :メモリ割り当て、ID番号、データ型はオブジェクトに関連付けられています.
    :変数は、それらのオブジェクトを参照するにすぎません.