jsp标签 判断 余数_程序员的数学基础课(三)余数与迭代法
生活随笔
收集整理的這篇文章主要介紹了
jsp标签 判断 余数_程序员的数学基础课(三)余数与迭代法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題:什么是余數 余數的作用?
余數在生活中非常常見,日歷,日期,其中包含一個定理 同余定理。同余定理:余數總是在一個固定的范圍內,任意兩個整數 a 和 b,如果它們除以正整數 m 得到的余數相等,我們就稱 a 和 b 對于模 m 同余。同余定理主要運用于:數據的均分。模運算最大的特點就是不可逆,https就是利用這個原理通過非對稱加密協商出對稱密鑰的。在寫代碼過程中會用到的同余定理。負載均衡算法,分庫分表,消息隊列順序消息,一致性hash,數據分頁等等余數在加密算法,隨機存儲等領域中有廣泛應用迭代法:
迭代法,簡單來說,其實就是不斷地用舊的變量值,遞推計算新的變量值。
下面這張圖即表示迭代法的數學函數。
代碼實例如下
// 迭代器模式// 兔子數列function fib(month) { if (month ==1 || month === 2) { return 1 } else { return fib(month -1) + fib(month - 2) }}// 棋盤的復利 等比數列function iterater(num) { let resNum = 0 let count = 1 for (let index = 0; index < num; index++) { count*= 2 resNum += count } return resNum}以上這兩段代碼使用迭代法實現了兔子數列 與棋盤問題的解決。
迭代法具體的應用
求數值的精確或者近似解。典型的方法包括二分法(Bisection method)和牛頓迭代法(Newton’s method)。
在一定范圍內查找目標值。典型的方法包括二分查找。
機器學習算法中的迭代。相關的算法或者模型有很多,比如 K- 均值算法(K-means clustering)、PageRank 的馬爾科夫鏈(Markov chain)、梯度下降法(Gradient descent)等等。迭代法之所以在機器學習中有廣泛的應用,是因為很多時候機器學習的過程,就是根據已知的數據和一定的假設,求一個局部最優解。而迭代法可以幫助學習算法逐步搜索,直至發現這種解。
????以下以一個面試題為例,
????????題目:使用迭代法求一個數的算數平方根,給定固定的精度?
????以下是解題思路的圖解在數學中存在二分法進行不同逼近的操作,不停的逼近得數的操作。
以下為代碼解題?方法
/** * * @param {*} num 需要計算的數據 * @param {*} deltaThreshold 誤差精度 * @param {*} maxCount 計算 */function getSqureRoot(num,deltaThreshold) { if (num<=1) { return 1 } // 設置最大值 var max = num; // 設置最小值 var min = 1; // 設置中間變量 var mid = 0; // 無限循環 for (; ;) { // 二分法求中間值 mid = (max +min) /2; // 得到平方值 var squre = mid* mid; // 計算精度 detalt = Math.abs((squre/num) -1); if (detalt<= deltaThreshold) { break } else { if (squre > num) { max = mid } else { min = mid } } } return mid}總結
以上是生活随笔為你收集整理的jsp标签 判断 余数_程序员的数学基础课(三)余数与迭代法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: socket模拟http的登陆_pyth
- 下一篇: telegraf输出MySQL_Graf