如何求根號2(愛奇藝面試題)

2021-02-07 算法面試題

問題


小E最近找實習的時候,被面試官問了這樣一道題:如何求根號2的值?


小E沒能答上來,回來後向老師請教。


思路




點評:以上介紹了二分法和牛頓迭代法來求解根號2,另外我們還可以通過泰勒公式法來求解。很多朋友可能會問,我們經常調用的Math庫中sqrt(x)函數的實現用的是哪種方法呢?為了效率,sqrt(x)函數在底層是用C語言來實現的,實現過程非常巧妙,效率極高,用到了牛頓迭代法的思想,但又不完全是牛頓迭代法,我會將sqrt(x)庫函數的代碼放於文後,有興趣可以研究。


代碼實現


牛頓迭代法(JavaScript)



function sqrt(n) {
    
    
    let res = n >= 1 ? n : 1;
    while(res * res - n > 1e-8)
        res = 0.5 * (res + n / res);
    return res;
}


附:

C語言實現的庫函數(源碼)



float invSqrt(float x){
    float xhalf = 0.5f*x;
    int i = *(int*)&x;
    
    i = 0x5f375a86 - (i>>1); 

    x = *(float*)&i;
    
    x = x*(1.5f-xhalf*x*x); 
    x = x*(1.5f-xhalf*x*x); 
    x = x*(1.5f-xhalf*x*x);
    
    return x;
}


複製代碼請前往https://blog.csdn.net/Great_Eagle/article/details/84780271


(完)


掃碼開啟算法之旅


不求讚賞,只求在看啦啦啦

相關焦點

  • 漫畫:如何求根號2(愛奇藝面試題)
    備註:加群,加入程式設計師技術群機器人自動邀請的來源於公眾號算法面試題投稿發布問題小E最近找實習的時候,被面試官問了這樣一道題:如何求根號2的值?點評:以上介紹了二分法和牛頓迭代法來求解根號2,另外我們還可以通過泰勒公式法來求解。很多朋友可能會問,我們經常調用的Math庫中sqrt(x)函數的實現用的是哪種方法呢?
  • 愛奇藝面試題解析:如何求根號2
    (給算法愛好者加星標,修煉編程內功)作者:Great Eagle(本文來自作者的投稿)問題小E最近找實習的時候,被面試官問了這樣一道題:
  • 面試題:如何求根號2
    > 來源:算法面試題
  • 【offerMe--刷題必備】java如何實現開根號的運算
    今天我們來看一下這道題,java如何實現開根號的運算。
  • 應屆研究生分享:兩道帶坑又簡單的面試題!
    到今天為止有幸拿到五個面試, 其中有兩個On-Site.我自己還是個時常會緊張的人, 所以在面試前會試圖翻看過往學習的所有技術性內容. 當然啦, 常常都是徒勞, 因為我也摸不清楚面試官到底會問什麼. 我想了想, 為了記錄下我的面試歷程, 也是希望能幫助到大家, 我還是把每次被問到的技術問題都寫出來吧. 希望真的能幫到大家, 也希望諸位不要跟我一樣緊張.
  • CAD中如何繪製長度為根號2、根號3的直線?
    對於根號2、根號3、根號5這種比較簡單的數字,我們可以利用勾股定理來解決,比如說根號2,我們可以繪製兩條長度為1相互垂直的線,斜邊連接起來就是根號2長,如下圖所示。 根號5畫法類似,只是將一條直角邊長度改為2就可以了。根號3麻煩一點,需要斜邊長2,一條直角邊是1,另一條直角邊長度就是根號3了,畫法也比較複雜,需要畫一個半徑為2的圓,如下圖所示。
  • 漫畫:美團面試題(TOPK:求第K個最大的元素)
    第215題:在未排序的數組中找到第 k 個最大的元素。請注意,你需要找的是數組排序後的第 k 個最大的元素,而不是第 k 個不同的元素。示例 1:輸入: [3,2,1,5,6,4] 和 k = 2輸出: 5示例 2:輸入: [3,2,3,1,2,4,5,5,6] 和 k = 4輸出: 4堆在算法題目中的應用主要包括以下幾點:
  • 如何免費領愛奇藝會員3天_愛奇藝vip免費試用_愛奇藝會員帳號共享_愛奇藝會員帳號_影視商行
    免費分享愛奇藝會員三天,2019年3月31日更新第六批愛奇藝會員免費試用,愛奇藝vip免費試用|愛奇藝會員免費三天|愛奇藝會員激活碼
  • 頭條一個面試題:後端是如何獲取到客戶端的IP位址的
    蘇格蘭高地上的歐亞紅松鼠,蘇格蘭(© Scotland: The Big Picture/Minden Pictures)本文收錄於 GitHub
  • 愛奇藝綜藝節目駐場翻譯(英語)
    崗位職責:1、愛奇藝綜藝節目後期包裝花字翻譯及審核;2、上線日次日審核供應商返回的譯文;3、節目組後期日常製作及替換的文案翻譯
  • 愛奇藝招韓語線上兼職翻譯
    愛奇藝 是中國高品質視頻娛樂服務提供者,目前,愛奇藝已成功構建了包含電商、遊戲、電影票等業務在內
  • CAD中如何繪製長度是帶根號的直線?
    像我們面對根號2、根號3、根號5這些比較簡單的數字,我們完全可以利用勾股定理來解決的,比如說根號2 ,我們可以繪製出兩條垂直的長度為1的直線,斜邊連結起來的線就是根號2的長度。參考下圖。    根號5的畫法類似,只是將一條支教邊長改成2就可以了,根號3比較麻煩一些,我們需要斜邊長度為2,一邊的直角邊是1,另一條的直角邊長度就是根號3了,畫法相對也會複雜些,我們要畫出一個半徑為2的圓形,參考下圖。
  • 如何下載愛奇藝上的視頻?
    至今為止,十年的時間裡,中國成立的視頻網站主要是優酷、土豆、搜狐、愛奇藝、騰訊、樂視、PPTV等。2013年優酷和土豆的合併成立了搜庫更是瓜分了其他視頻的市場份額,鞏固了其在視頻界的霸主地位。面對如此強大的競爭對手,愛奇藝卻還是以其始終如一的品質優勢和客戶終端的推廣讓自己的客戶群體得以保留,並且用戶數量還在一直上升,現在一提到視頻界的競爭對手無不提到愛奇藝。
  • 【面試題】Java必考面試題全集(30)
    Java基礎面試題(30)public
  • Facebook 面試題全解析
    在這篇文章中,我來介紹一下你在面試Facebook的前端工程師職位時可能會遇到的面試題。本題中,「展平」的數組指的是所有元素均為基本類型的數組。示例輸入:[1, [2, [3], 4], [5]]輸出:[1, 2, 3, 4, 5]
  • 【PC】愛奇藝
    求轉發
  • 尚矽谷Java視頻教程_Java面試題第一季
    網際網路寒冬來臨,打鐵還需自身硬,嘟嘟這裡分享一套最新Java面試題視頻,祝你更上一層樓。
  • 【每日一題】(41題)JS代碼到底是如何被壓縮的?
    •第 16 題:【每日一題】面試官問:JS中如何全面進行客戶端檢測?•第 15 題:【每日一題】面試官問:JS類型判斷有哪幾種方法?•第 14 題:【每日一題】面試官問:談談你對JS對象的創建和引申•第 13 題[每日一題]面試官問:['1', '2', '3'].map(parseInt)輸出,原因,以及延伸?
  • 愛奇藝:愛奇藝帳號免費
    愛奇藝會員自動續費,愛奇藝會員,愛奇藝會員充值,愛奇藝vip,愛奇藝會員自動續費,愛奇藝會員領取2020,愛奇藝會員帳號共享,愛奇藝會員免費送,
  • 重磅,愛奇藝的7元券,配合愛奇藝京東年卡活動
    愛奇藝VIP會員+京東PLUS會員!愛奇藝年費會員+京東PLUS會員,可以入手了活動時間,7月14日~7月17日!不分新老用戶,都可以去!拇指識別二維碼進入操作完了,記得登錄愛奇藝APP,把自動續費關掉!