java中Math常用的數學函數

最近AI比較火,於是沒事自己看下深度學習等方面的文章。
深度學習中的各種算法,用到了數學領域的很多公式、函數,回頭想要敲代碼熟悉一下這些算法時,發現很多公式、函數不用用代碼寫了,還要翻Math類。所以在這裏記錄一下Math中常用的函數,以備不時之需。

Math.E                          //自然常數e=2.7182818284590452354
Math.abs(12.3);                 //12.3 返回該值的絕對值  
Math.abs(-12.3);                //12.3  

Math.copySign(1.23, -12.3);     //-1.23,返回第一個參數的量值和第二個參數的符號  
Math.copySign(-12.3, 1.23);     //12.3  

Math.signum(x);                 //如果x大於0則返回1.0,小於0則返回-1.0,等於0則返回0  
Math.signum(12.3);              //1.0  
Math.signum(-12.3);             //-1.0  
Math.signum(0);                 //0.0  


//指數  
Math.exp(x);                    //e的x次冪  
Math.expm1(x);                  //e的x次冪 - 1  

Math.scalb(x, y);               //x*(2的y次冪)  
Math.scalb(12.3, 3);            //12.3*2³  

//取整  
Math.ceil(12.3);                //返回最近的且大於該值的整數13.0  
Math.ceil(-12.3);               //-12.0  

Math.floor(12.3);               //返回最近的且小於該值的整數12.0  
Math.floor(-12.3);              //-13.0  

//x和y平方和的二次方根  
Math.hypot(x, y);               //√(x²+y²)  

//返回該值的二次方根  
Math.sqrt(x);                   //√(x) x的二次方根  
Math.sqrt(9);                   //3.0  
Math.sqrt(16);                  //4.0  

//返回該值的立方根  
Math.cbrt(27.0);                //3   
Math.cbrt(-125.0);              //-5  

//對數函數  
Math.log(e);                    //1 以e爲底的對數  
Math.log10(100);                //10 以10爲底的對數  
Math.log1p(x);                  //Ln(x+ 1)  

//返回較大值和較小值  
Math.max(x, y);                 //返回x、y中較大的那個數  
Math.min(x, y);                 //返回x、y中較小的那個數  

//返回x的y次冪  
Math.pow(x, y);                   
Math.pow(2, 3);                 //即2³ 即返回:8  

//隨機返回[0,1)之間的無符號double值  
Math.random();                    

//返回最接近該值的整數,如果居中,則取偶數  
Math.rint(12.3);                //12.0   
Math.rint(-12.3);               //-12.0  
Math.rint(78.9);                //79.0  
Math.rint(-78.9);               //-79.0  
Math.rint(34.5);                //34.0  
Math.rint(35.5);                //36.0  

Math.round(12.3);               //與rint相似,返回值爲long  

//三角函數  
Math.sin(α);                    //sin(α)的值  
Math.cos(α);                    //cos(α)的值  
Math.tan(α);                    //tan(α)的值  

//求角  
Math.asin(x/z);                 //返回角度值[-π/2,π/2]  arc sin(x/z)  
Math.acos(y/z);                 //返回角度值[0~π]   arc cos(y/z)  
Math.atan(y/x);                 //返回角度值[-π/2,π/2]  
Math.atan2(y-y0, x-x0);         //同上,返回經過點(x,y)與原點的的直線和經過點(x0,y0)與原點的直線之間所成的夾角  

Math.sinh(x);                   //雙曲正弦函數sinh(x)=(exp(x) - exp(-x)) / 2.0;  
Math.cosh(x);                   //雙曲餘弦函數cosh(x)=(exp(x) + exp(-x)) / 2.0;  
Math.tanh(x);                   //tanh(x) = sinh(x) / cosh(x);  

//角度弧度互換  
Math.toDegrees(angrad);         //角度轉換成弧度,返回:angrad * 180d / PI  

Math.toRadians(angdeg);         //弧度轉換成角度,返回:angdeg / 180d * PI  
發佈了64 篇原創文章 · 獲贊 27 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章