From 91f7d45282043b0358a0c39e15f23f38d4750653 Mon Sep 17 00:00:00 2001 From: hniii98 <752708928@qq.com> Date: Sat, 14 Sep 2024 19:42:08 +0900 Subject: [PATCH] [docs][interview.md]float layout --- docs/interview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/interview.md b/docs/interview.md index 82f33ad..c631df5 100644 --- a/docs/interview.md +++ b/docs/interview.md @@ -7,7 +7,7 @@ - 张剥士在taichi论坛里主动找上来联系,表示我们很欣赏你在太极的伟大贡献,希望和我们泽森一起创造更好的新产品(什么挖墙角) - 张剥士在微信电话里开始语音面试了,上来就要求实现sqrt函数(牛顿迭代法即可,小彭老师不小心写错,有死循环,张剥士表示不要紧,这个你肯定现实中很容易调试改正的,主要是牛顿迭代需要导数的解析式,容易写错,naive的初学者也可以选择写二分法,余切法等) - 有没有了解过雷神3的快速sqrt函数?(知道,但好像是神奇的二进制运算,没有深入了解过为什么这样做) -- 知道float的布局吧(15位底数mantissa,8位指数exponent,1位符号sign) +- 知道float的布局吧(23位底数mantissa,8位指数exponent,1位符号sign) - 而牛顿迭代法需要近似,sqrt最好的近似,实际上就是把exponent位除以2,对不对?(小彭老师恍然大悟,怪不得需要右移1位,原来是让exponent除2,雷神的sqrt因为有良好的近似初值,接下来就只需要一两步就能收敛) - 接下来脑筋急转弯:我有从 1 到 100 这 100 个数,组成超长的数组,随机排列,现在这里面缺少了一位(比如 1 2 3 4 5 7 8 9 10 就是缺少了 6) - 现在,我一边报数你一边操作,我报完的那一刻,你必须立即告诉我,缺失的那一个数是什么,并且不允许使用记事本(也就是要求常数空间复杂度,很简单,你报的同时我往一个计数器里累加求和,然后算出来的总求和和 5050 相减,得到的就是缺失的那个数了,比如 1+2+3+4+5+7+8+9+10 - 55 = -6,那么就知道缺的是 6)