[アルゴリズム]アルゴリズムベース1
2356 ワード
アルゴリズムベース入門のために学ぶDO IT!資料構造とともに学ぶアルゴリズム入門:Python編で新しい知識をまとめる
1.浮動小数点方式
break:含む重複文を停止 continue:今回をスキップし、次から を繰り返す
4.数式
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. 繰り返し文をスキップ
:いずれの場合も実行結果は同じです.
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. 繰り返し文をスキップ
[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;
[기존 코드] 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="")
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番号、データ型はオブジェクトに関連付けられています.
:変数は、それらのオブジェクトを参照するにすぎません.
Reference
この問題について([アルゴリズム]アルゴリズムベース1), 我々は、より多くの情報をここで見つけました
https://velog.io/@gsh723/알고리즘-알고리즘-기초-1
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
:メモリ割り当て、ID番号、データ型はオブジェクトに関連付けられています.
:変数は、それらのオブジェクトを参照するにすぎません.
Reference
この問題について([アルゴリズム]アルゴリズムベース1), 我々は、より多くの情報をここで見つけました https://velog.io/@gsh723/알고리즘-알고리즘-기초-1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol