μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ν μ€νΈλΆ
- μ΄λ Έλ² μ΄μ μμΉ΄λ°λ―Έ
- Cloud Spanner
- schema first
- GraphQL
- 42μμΈ
- λ컀
- uuid-ossp
- μ΄μ λΈλ¦¬
- μ λ ¬
- μ£μ§μ»΄ν¨ν
- μ€νλ¦Ών€λ³΄λ
- enable_if
- c++
- psql extension
- mistelν€λ³΄λ
- μ΄μ λΈλ¦¬μ΄
- μΏ λ²λ€ν°μ€
- μ€ννΈμ
- 42seoul
- λ μ΄μΊμ€ν
- raycasting
- νμ΄μ¬
- νλΌμ΄λΉν΄λΌμ°λ
- λλ£νμ΅
- adminbro
- μλ£κ΅¬μ‘°
- SFINAE
- μ°½μ
- λΆλμμμ
- Today
- Total
written by yechoi
(λ²μ) λΆλμμμ μ μ΄ν΄νκ³ μ¬μ©νκΈ° λ³Έλ¬Έ
πμ΄ κΈμ Jeff Bezansonμ Understanding and Using Floating Point Numbersλ₯Ό λ²μνμ΅λλ€. λ€μ μμν λΆλΆμ΄ μμΌλ©°, μ€μν λΆλΆμ΄ μλ€λ©΄ λκΈμ λΆνλ립λλ€.
μ«μκ° μ»΄ν¨ν° νλ‘κ·Έλ¨μμ κ°μ₯ νν λ°μ΄ν°λΌλ κ²μ νμ€ν©λλ€. λ무λλ κΈ°μ΄μ μΈ λλ¨Έμ§ μ¬λλ€μ μ«μμ λν΄ λ§μ΄ λ Όμνμ§ μμ΅λλ€. λͺ¨λ μ¬λλ€μ νλ‘κ·Έλ¨μμ μ«μλ₯Ό μ¬μ©νλ λ°©λ²μ μκ³ μλ€κ³ μκ°ν΄μ. κ·Έλ μ§λ§ νλ‘κ·Έλλ°μ μΈκ³μμ κ°μ₯ νμμ μΈ κ² μ€ νλλ λΉμ μ΄ λ§μ£Όνλ λͺ¨λ κ²μ΄ μμμ΄μμ΄λΌλ κ²μ΄μ£ .
λλΆλΆμ νλ‘κ·Έλλ¨Έλ€μ λΆλμμμ μ€μμ λν΄ μ΄μν μ μ λ£κ±°λ λ΄€μ κ²μ λλ€. μλ₯Ό λ€μ΄, μ°λ¦¬λ μ’ μ’ κ°μ 보μ΄λ λΆλμμμ μ€μκ° Cμ '==' 쑰건μ λΆν©νμ§ μλλ€λ κ²μ λ°κ²¬νκ³€ ν©λλ€. μ΄λ¬ν μ΄μ λ‘ μ΄λ³΄ νλ‘κ·Έλλ¨Έλ€μ λΆλμμμ μ€μμλ ==λ₯Ό μ λ μ¬μ©νμ§ μλλ‘ λ°°μ°κΈ°λ νμ£ . λλλ‘ μ°λ¦¬λ λ€λ₯Έ μμΈμ μΈ κ²½μ°μ λΆλͺνκΈ°λ ν©λλ€. μλ₯Ό λ€μ΄ μνμ μΌλ‘ λ§μ΄ λλ μμμ΄, λΆλμμμ μ μ°κΈ°λ§ νλ©΄ μ€λ§μ€λ¬μΈ μ λλ‘ μ ννμ§ μκ±°λ 무μμμ κ²°κ³Όλ₯Ό λ΄λ±κΈ°λ ν©λλ€.
μ΄λ€ μΌμ΄ μΌμ΄λλ κ±ΈκΉμ? λΆλμμμ μ€μμ κ΄ν΄μ μ§κ΄μ μ΄κΈλλ κ²λ€μ΄ λ§κ³ , μ΄λ¬ν νΉμ± λλ¬Έμ μ°λ¦¬λ λΆλμμμ μ€μλ₯Ό νλ‘κ·Έλ¨μμ μ¬μ©νλ©΄μ μ¬λ¬κ°μ§λ₯Ό λ°°μ°κ² λ©λλ€.
λΆλμμμ μ€μλ μ°©μ ν¨κ³Όλ₯Ό μΌμΌν΅λλ€. 10μ§λ²μ΄λ μμ£Ό μκ±°λ ν° μλ‘λ ννλλ©΄μ ’μ€μ ’ μ«μμ²λΌ 보μ΄λ κ±°μ£ . νμ€μμ κ°μ 4λ°μ΄νΈλ‘ νννλ€κ³ νμ λ, μ€μλ³΄λ¨ μ μλ₯Ό μ λλ‘ ννν©λλ€. μ΄μ λ λΉμ°νκ²λ λΆλ μμμ μ€μμ λν λ΄λΆμ μΈ ννμ΄ κ°λ¨νμ§ μκΈ° λλ¬Έμ λλ€. μ μλ₯Ό νννλ λΉνΈλ κ·Έ μμ²΄λ‘ μ΄μ§λ²μ μμ΄μ§λ§, λΆλμμμ μ€μλ₯Ό νννλ λΉνΈλ μ’λ 볡μ‘νκ² ν΄μλ©λλ€. μ΄ ννλ²μ λν΄μ λμ€μ κΈΈκ² μ€λͺ νλλ‘ νκ³ , λ¨Όμ μ μμ μ€μμ κ°λ μ μΈ μ°¨μ΄λ₯Ό μμ보λλ‘ ν κ²μ.
1. Accuracy vs. Precision
μΈ‘μ κ°λ μ€μμ Accuracyμ Precisionμ μ μμ μ€μμ λ€λ₯Έ νΉμ±μ μ μ€λͺ ν©λλ€(μ΄λ€ μμ€ν μμλ, μ΄λ€ μμ ννλ²μ΄ μ¬μ©λλλΌλ μ΄λ λ§μ°¬κ°μ§μμ.). "accuracy"λ μΈ‘μ μΉκ° μ€μ κ°μ μΌλ§λ λΉμ·νμ§λ₯Ό λνλ΄λ κ°μ λλ€. λ°λ©΄ "precision"μ μμ κ΄ν΄ μΌλ§ λ§νΌμ μ 보λ₯Ό κ°μ§κ³ μλμ§, μ΄λ₯Ό λΉμ μ΄ μΌλ§λ λ μ°½μ μΌλ‘ ννν΄λλμ§μ κ΄λ ¨λΌ μμ΅λλ€.
μ μ κ³μ°μ μλ²½ν μ νν΄μ. (μ μ "2"κ° μλ€λ©΄, 그건 μ νν 2μΈκ±°μ£ . λꡬλ μ΄ μ¬μ€μ μ΄μ μ κΈ°ν μ μμ΄μ.) λμ±μ΄ μ¬κΈ°μ 1μ λνλ©΄, μ νν 3μ μ»μ κ²μ΄λ κ±Έ μμ£ . μ μλ‘ μ΄λ€ κ³μ°μ νλ κ°μ, μ€λ²νλ‘μ°λ§ μλ€λ©΄μΌ λΉνΈ λ¨μλ‘ μ νν μλ₯Ό μ»κ² λ κ²λλ€. κ·Έλ¬λ μ μμ precisionμ΄ λΆμ‘±ν΄μ. μλ₯Ό λ€μ΄ 5μ 4λ₯Ό κ°κ° 2λ‘ λλλ©΄, λλ€ 2λΌλ κ²°κ³Όλ₯Ό λ΄μ. μ μλ μ‘°κ°λ λΆλΆμ λν΄μ μ 보λ₯Ό κ°μ§κ³ μμ§ μμμ. 4λ³΄λ€ μ½κ° ν¬κ³ 5보λ€λ μμ μκ° μλ€κ³ νλ©΄, 4λ³΄λ€ ν° λΆλΆμ μ 보λ μμ΄λ²λ¦¬μ£ . μ μλ λ―ΈμΈν λ³νλ₯Ό λννκΈ°μ λ무 ν¬λ°ν΄μ. μ μλ₯Ό μ¬μ©νλ 건 λ²½λμ μλ κ²κ³Ό κ°μ£ . μ μ‘면체λ₯Ό λ§λ λ€λ©΄ λ²½λμ΄ μμ£Ό λ±μ΄κ² μ§λ§, ꡬλ₯Ό λ§λ λ€κ³ μκ°νλ©΄ λ²½λμ κ·Έλ₯ μ’μ μ νμ μλμ£ . (κ΅¬κ° λ²½λλ³΄λ€ μμ£Ό ν¬λ€λ©΄, λΉμ·νκ² λ§λ€μ΄λ³Ό μλ μκ² λ€μ.)
μ€μλ accuracyμ precisionμ μμ΄μ μ μμ μ λ°λμ λλ€. λΉμ μ΄ νννλ €λ μμ λν μ 보λ₯Ό μλμ μΌλ‘ λ²λ¦¬λ μΌμ μ λ μμΌλ―λ‘ μ’μ precisionμ κ°μ§κ³ μμ΄μ. λΉνΈλ§ λ§λ€λ©΄ μλμ μλ₯Ό μ»κΈ° μν΄ μ΄λ€ FP κ³μ°λ λλ릴 μ μμ£ . λ§μΉ λΉνΈλ§ μΆ©λΆνλ©΄ μμ£Ό ν° μ μλ ννν μ μλ κ²μ²λΌμ. κ·Έλ¬λ μμμ μ΄ μλ μλ μ νλκ° λΆμ‘±ν©λλ€. μ μκ° λ²½λκ°λ€λ©΄, μ€μλ λ©μ²ν νΌν° κ°μμ. 볡μ‘ν 곑면 λͺ¨μμ λ°λ₯΄λλ‘ ν΅μ ν μλ μμ§λ§, μμ£Ό λ± λ§κ² μΉ νλ €λ©΄ μμ Έλμ€μ£ . νΌν°λ‘ μλ²½ν μ μ‘면체λ₯Ό λ§λ λ€κ³ μκ°ν΄λ³΄μΈμ. λͺ¨μ리 λΆλΆμ μλ²½νκ² λ μΉ΄λ‘κ² λ§λ€ μ μμ κ±°μμ. μ¬μ€ λ§μ κ²½μ°μμ μμμ μ«μμ κ²°κ³Όκ° μ€μ μμ λΉνΈ λ¨μλ‘ μ νν μΌμΉν리λΌκ³ κΈ°λνλ 건 λ§κ·Έλλ‘ κ°λ§μλ μΌμ λλ€.
λͺ¨λ λ©΄μ΄ λ°μ΄λ리μμ μ νν ννλ μλ μλ€λ μ μμ μ€μλ νμμ μΌλ‘ μ μμ λ€λ¦ λλ€. λ°μ΄λ리 κ³μ°μ ννλ 건 μλλλ€. μ΄λ€ μ§λ² μμ€ν μμλ μ΄λ¬ν μ μ½μ λ§μ°¬κ°μ§μ λλ€. 1/3μ μκ°ν΄λ³΄μΈμ. λλμ§ μλ 10μ§λ² νν(e.g 0.333333)λ 1/3κ³Ό κ°λ€κ³ ν μ μμ£ . 3μ λλ μμ΄ κ°μ Έλ€ μ΄λ€ν΄λ μ ννκ² ννν μ μμ κ²λλ€. λ°λΌμ νμ λ μμμ μ리μλ‘ κ³μ°λ κ²°κ³Όλ₯Ό μ νν ννν μ μλ€κ³ 보λ κ² λ«κ² λ€μ. λΉμ μ΄ λ¬΄μΌνλ κ²°κ³Όλ μ€μ μ μ‘°κΈμ ν릴 μ λ°μ μμ΅λλ€. κ·ΈλΌμλ μ°λ¦¬λ μ€μκ° μ¬μ ν μ μ©νλ€λ κ²μ μκΈ° λλ¬Έμ, λ°μ¬λ¦Ό μλ¬ μν©μ νμ ν΄ λ¬Έμ λ₯Ό λ°©μ§νλ νΈμ΄ λ«μ£ . μ΄λ₯Ό μν΄μλ μλλ©΄ κ΅μμ μν΄μλΌλ, μμκ° μ€μ λ‘ μ΄λ»κ² μλνλμ§ μλ 건 μ’μ μΌμ λλ€.