※ 引述《ggegge (Egg)》之銘言:
: 7) LinkedIn
: 我和 LinkedIn 有過一次 phone interview,也是在協作平台上的 coding 問題。
: 比較讓我傻眼的是 interviewer 連 floating point 比較時不能用 == 都不知道,
: 我還要和他解釋,他一直說 "我在 Java 都直接用 =="...... Recruiter 也是很奇
: 怪,我寄信和他說我 deadline 快到可不可以加速,他竟然要我自己去問 interviewer。
超嗆的, "interviewer 連 XXX 都不知道", 這樣被電爆你應該不介意吧? XD
我也不知道為什麼 floating point 不能用 == 比較. 如果用 == 那麼糟的話,
為什麼那麼多語言不直接把它定義成 undefined behavior?
我是很感冒現在的小朋友遇到浮點數比較都自動 +-0.0001,
可是又說不出來自己在幹嘛, 只會說"浮點數計算不準啦"又說不出來是怎樣不準.
所有的 IEEE 754 implementation 都保證四則運算跟 sqrt 會做正確的 rounding,
拿 floating point 做 hash table key 的我都看過了,
如果經過正確的數值分析保證計算結果會一樣, exact comparison 有何不可?
要我是 interviewer 的話我就考你各種情形下需要多少的 tolerance.
舉例來說, (float)((1 << i) + 1) == (float)((1 << i) - 1)
當 i 的範圍在多少的時候會是 true 就已經沒幾個 candidate 弄得清楚了.
--
その乾いた哀愁の瞳に去來するものは何か?
失ったもの 得たもの
そして廣大なネットの狹間で彼が見たものとは?
虛像と實存と記號の中に彼は今、何を想うのか?
<バトルプログラマーシラセ>
--
: 7) LinkedIn
: 我和 LinkedIn 有過一次 phone interview,也是在協作平台上的 coding 問題。
: 比較讓我傻眼的是 interviewer 連 floating point 比較時不能用 == 都不知道,
: 我還要和他解釋,他一直說 "我在 Java 都直接用 =="...... Recruiter 也是很奇
: 怪,我寄信和他說我 deadline 快到可不可以加速,他竟然要我自己去問 interviewer。
超嗆的, "interviewer 連 XXX 都不知道", 這樣被電爆你應該不介意吧? XD
我也不知道為什麼 floating point 不能用 == 比較. 如果用 == 那麼糟的話,
為什麼那麼多語言不直接把它定義成 undefined behavior?
我是很感冒現在的小朋友遇到浮點數比較都自動 +-0.0001,
可是又說不出來自己在幹嘛, 只會說"浮點數計算不準啦"又說不出來是怎樣不準.
所有的 IEEE 754 implementation 都保證四則運算跟 sqrt 會做正確的 rounding,
拿 floating point 做 hash table key 的我都看過了,
如果經過正確的數值分析保證計算結果會一樣, exact comparison 有何不可?
要我是 interviewer 的話我就考你各種情形下需要多少的 tolerance.
舉例來說, (float)((1 << i) + 1) == (float)((1 << i) - 1)
當 i 的範圍在多少的時候會是 true 就已經沒幾個 candidate 弄得清楚了.
--
その乾いた哀愁の瞳に去來するものは何か?
失ったもの 得たもの
そして廣大なネットの狹間で彼が見たものとは?
虛像と實存と記號の中に彼は今、何を想うのか?
<バトルプログラマーシラセ>
--
All Comments