Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ゼロで割る気持ちを理解する
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ogawa-tomo
March 31, 2024
0
100
ゼロで割る気持ちを理解する
ogawa-tomo
March 31, 2024
Tweet
Share
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Thoughts on Productivity
jonyablonski
74
5k
How to make the Groovebox
asonas
2
1.9k
Balancing Empowerment & Direction
lara
5
900
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
780
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
79
Ruling the World: When Life Gets Gamed
codingconduct
0
150
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
830
Raft: Consensus for Rubyists
vanstee
141
7.3k
Evolving SEO for Evolving Search Engines
ryanjones
0
130
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
57
Transcript
ゼロで割る気持ちを理解する 2024/3/30 初めてのLT会 Vol.15 tomo
自己紹介 名前:tomo 入隊:2022/12/19(40期生) ↑五竜岳と鹿島槍ヶ岳の間のなんでもないところ
質問 JavaScriptで次の式を実行したらどうなると思いますか?
答え みなさんはこれを許せますか?
Rubyでは… こうであってほしい!
数学的には… だが、xにゼロを代入してはいけない!
なぜ、JavaScriptでは1/0がInfinityなのか?
答え JavaScriptの数値型(Number型)は浮動小数点数である(いわゆる「整数型」 ではない) 浮動小数点数の演算において、正の数を0で割った結果はInfinityであると規格 (IEEE754)で決まっている
Rubyでも… Float型 = 浮動小数点数
なぜ、浮動小数点数では0の割り算をInfinityとしたのか?
浮動小数点数とは 有限の桁数で表現 →値の範囲に限界がある/離散的な値しか扱えない/誤差を含む →実数を正確に表現することはできない! 浮動小数点数 有限の桁数(ビット列)で実数を精度よく近似表現するための手法 0 1 1 1
0 1 … 0 1 64bit(倍精度の場合)
浮動小数点数におけるInfinityとは 扱える値の範囲の限界を超えたら一律でInfinityとみなす 仕様(普通のJavaScript実行環境の場合) 21024-1よりも大きな正の数は、Infinityに変換される -(21024-1)よりも小さな負の数は、-Infinityに変換される Infinity -Infinity
浮動小数点数における0とは ゼロに近づける限界を超えたら一律で0とみなす 仕様(普通のJavaScript実行環境の場合) 2-1074よりも小さな正の数は、0に変換される -2-1074よりも大きな負の数は、-0に変換される 0 === -0 とする 0
-0
「0」の解釈 本当のゼロ 「0」に変換される区間 →「0」は変換される前はこの区間のどこかだった! →「0」はこの区間そのもの(確率分布)と解釈できる! →そうすると誤差を扱えているし、実数を表現できている!?
0で割ったときInfinityにする理由 本当のゼロ 「0」の区間(確率分布) →これが本当のゼロになる確率はゼロ! Infinityの区間
まとめ JavaScriptの数値型は浮動小数点数 浮動小数点数では、1/0はInfinityだと決まっている それは、「0」は「ゼロの近くの区間」だから(?) 浮動小数点数の気持ちがちょっと分かったかも?