๐ชด ๋ชฉ์์ผ TIL๐ชด
โ๏ธ ํ์ด์ฌ์ ์ฌ๊ทํจ์ ๊น์ด ์ ํ์ ๊ธฐ๋ณธ์ด 1000์ด๋ค.
ํ์ด์ฌ์ผ๋ก ์ฌ๊ทํจ์๋ฅผ ์ฌ์ฉํด์ ๋ฌธ์ ๋ฅผ ํ ๋, recursion error๋ฅผ ๊ฐ๋ ๋ง๋ ์ ์๋ค. ํ์ด์ฌ ์ฌ๊ทํจ์์ ๊น์ด ์ ํ์ ๊ธฐ๋ณธ์ด 1000์ธ๋ฐ, ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์ ๊ทธ ์ด์์ ํธ์ถํด์ผ ํ ๋๊ฐ ์๋ค. ๊ทธ๋ด๋ sys๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์์ ์ฌ๊ทํจ์์ ์ ํ์ ๋๋ ค์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ผ์๋ recursion error๊ฐ ์๊ธด๋ค๋ฉด ์ฌ๊ท ๊น์ด๋ฅผ ๋ ๋๋ ค์ฃผ๊ฑฐ๋, ํฌ๊ฒ ๋๋ ธ์์๋ ๋ถ๊ตฌํ๊ณ ํด๊ฒฐ๋์ง ์์ผ๋ฉด ์ฌ๊ท๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํด์ผ ํ๋ค. (์ฌ๊ท์ ๊น์ด๊ฐ ์ฑ์ ์๋ฒ๊ฐ ๊ฐ๋นํ ์ ์๋ ์ ๋๋ก ๊น์ ๊ฒฝ์ฐ์๋ ์ค๋ฅ๊ฐ ์๊ธด๋ค.)
import sys
sys.setrecursionlimit(10**7) # ์ํ๋ ์ซ์๋งํผ ์
๋ ฅ
# sys.getrecursionlimit() ์ต๋ ์ฌ๊ท ๊น์ด๋ฅผ ํ์ธํ๋ ํจ์
โ๏ธ ํ์ด์ฌ round()ํจ์์์ ๋ถ๋์์์ ์ ์กฐ์ฌํด์ผ ํ๋ค.
์ค๋ roundํจ์๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ถ๋์์์ ๋๋ฌธ์ ์ ๋ฅผ ๋ง์ด ๋จน์๋ค.
tmp1 = 0
tmp2 = 0
for i in range(3):
tmp1 += 1/3
print("tmp1",i+1,tmp1)
tmp2 += round(1/3,5)
print("tmp2",i+1,tmp2)
# tmp1 1 0.3333333333333333
# tmp2 1 0.33333
# tmp1 2 0.6666666666666666
# tmp2 2 0.66666
# tmp1 3 1.0
# tmp2 3 0.99999
print(tmp1) # 1.0
print(tmp2) # 0.99999
tmp1์ด๋ tmp2๋ ๋๊ฐ์ ๊ฐ์ด ๋์ฌ์ค ์์๋๋ฐ ์๋์๋ค... tmp1๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ํ๋๋ฐ tmp2 ๊ฐ์ ๊ฒฐ๊ณผ๋ง ๋์ค๋ ์ฒ์์ ๋ด๊ฐ roundํจ์๋ฅผ ์๋ชป ๊ธฐ์ตํ๋ ์ถ์๋ค. print(round(0.99999999999999,5))๋ฅผ ์ถ๋ ฅํ๋ฉด 1.0์ด ๋์์ ๋ ํท๊ฐ๋ ธ๋ค. ์๊ณ ๋ณด๋ ๋ถ๋์์์ ์ ์ง์ํ๋ ์ธ์ด๋ ๋ค ์ด๋ฐ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋ค. ์ธํฐ๋ท์ผ๋ก ์ด์ ๋ฅผ ์ฐพ์๋ณด๋ ์๊ฐ๋ณด๋ค ๋ณต์กํ๋ค. ๊ฐ๋จํ๊ฒ 10์ง ์์์ ์๋ฅผ 2์ง์๋ก ํํํ๋ค๋ณด๋ ์ค์ฐจ๊ฐ ์๊ฒจ์...๋ผ๊ณ ์ดํดํ๊ณ ๋์ด๊ฐ๋ค.
๋ฐ์ฌ๋ฆผ์ ์ ๋๋ก ํ๊ธฐ ์ํด์, ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ฝ๋๋ฅผ ์์ ํ๋ค. 10**(๋ฐ์ฌ๋ฆผํ ์๋ฆฌ์)๋ก ์๋ฅผ ๊ณฑํ๊ณ ๋ค์ ๋จ์ ์์์ ์ ๋ฒ๋ฆฐ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ 10**(๋ฐ์ฌ๋ฆผํ ์๋ฆฌ์)๋ก ๋๋ ๊ฐ์ round ํจ์์ ๋ฃ์ด์ ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ค.
tmp1 = 0
tmp2 = 0
tmp3 = 0
for i in range(3):
tmp1 += 1/3
print("tmp1",i+1,tmp1)
tmp2 += round(1/3,5)
print("tmp2",i+1,tmp2)
tmp3 += math.trunc(1/3 * 100000)
print(tmp1) # 1.0
print(tmp2) # 0.99999 # ์ค๋ฅ๋ก ์๋ชป ๋์จ ๊ฐ
print(round(tmp3/100000)) # 1 ์ํ๋ ๊ฐ
โ๏ธ ํ์ด์ฌ์ ์งํฉ ์๋ฃํ set
์งํฉ ์๋ฃํ์ ์ค๋ณต์ ํ์ฉํ์ง ์๊ณ , ์์๊ฐ ์๋ค. list๋ฟ๋ง ์๋๋ผ str, tuple ๋ฑ ๋ฐ๋ณต๊ฐ๋ฅํ(iterable)์๋ฃํ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ๊ทธ๋์ ์๋ฃ์์ ์ค๋ณต์ ์ ์ธํ ๊ฐ๋ง ๋ณด๊ณ ์ถ์ ๋ ์์ฃผ ์ ์ฉํ๊ฒ ์ฐ์ธ๋ค.
๐์ค๋ ํ ์ผ๐
๐ธ ์๋ฆฌ์ค์ฝ๋ฉ ์๊ณ ๋ฆฌ์ฆ ํ๊ธฐ
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ ์ธ์ ํ์ด๋ ํ๋ค๋ค... ์ธ์ ์ฏค ํธํด์ง์ง...ใ ๋ฐ๋ก ๋ด์ผํ๊ณ ๋ชจ๋ ๋ถํฐ ์ฝ๋ฉํ ์คํธ์ธ๋ฐ ๋ง์ด ๋ชปํ์๋ค... ๋ฐฑ์ค์ ๊ฒ์ํ์์ ๊ฒ์ํ๋ฉด ํํธ๋ฅผ ๊ฝค ์ป์ ์ ์๋๋ฐ, ์๋ฆฌ์ค์ฝ๋ฉ์ ํํฐ์๊ฒ ์ง๋ฌธํ๋ ๋ฐฉ๋ฒ๋ฐ์ ์๋ค. ์๋๋ฉด ํผ์ ๊ฒ์ํด์ ์ฐพ๊ฑฐ๋... ๊ทธ๋ฆฌ๊ณ ์ฐธ ๋ฐ๋ณด๊ฐ๊ฒ๋ ๋ชจ์ํ ์คํธ๋ฅผ ์์ ๋ชปํ๋ค. 30์ผ๊น์ง์ธ์ง ๋ชฐ๋๋๋ฐ ์ป๊ณ 12์ ์ง๋์ ์น๋ ค๊ณ ํ๋๊น ์ฝ์ค์์ ํ๊ฒผ๋ค...ใ ๋๋ฌด ์์ฝ์ง๋ง ์ค์ ํ ์คํธ๋ ๊ผญ ์ ํ์ด์ผ์ง!!
๐ค๋ด์ผ ๋ค์ง๐ค
๐ ๊ต์ก ์๊ณ ๋ฆฌ์ฆ ํ ์คํธ ์์(2์ผ ์์ ๊น์ง)
๐ ์ค๋์ฒ๋ผ ํ์ดํ ํ๊ธฐ!!!๐
'๊ฐ๋ฐ > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
#211007 (0) | 2021.10.08 |
---|---|
#211001 (0) | 2021.10.02 |
#210917 (0) | 2021.09.18 |
#210916 TIL (0) | 2021.09.17 |
#210915 TIL (0) | 2021.09.16 |