国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

java中冪指數值的運算代碼解析

2024-07-13 10:14:28
字體:
來源:轉載
供稿:網友

說到冪指數的運算我們就會用到Math.pow(doublea,doubleb),返回的結果是a的b次方。

在Java中,當我們計算2的n次方時,可以直接用Math.pow來計算。非常方便。

但是,已知一個冪的結果為M和冪的底數a,現在要求冪的指數n。Math中提供的有log(double)方法,但是只能傳入一個參數,即M。那么問題來了,如何簡單、方便、快捷的達到我們的要求呢?答案如下:

n=Math.log(M)/Math.log(a);

這個方法可以滿足我們大多數冪指數的計算,但是每次訪問的值和傳入的值都是double,自己不想去轉的話怎么辦,我們有一種新的方案。

方案前提:冪指數的底數是2的倍數。

這里我們就用到了移位運算(移位運算是基于二進制來的,所以方案前提就是這個依據),如我們求2的3次方,我們可以用2<<(3-1)來計算出結果。

4的2次方,我們先要把4轉化為2的2次方,再來2<<(4-1)來計算出結果。

下面這個方法實現的效果是我們傳入一個2的倍數相加的兩個數,比如12(是4+8),我們把它自動計算出[4,8]

再比如18,我們把它計算出[2,16]

再比如22,我們把它計算出[2,4,16]

/**    * 以2的次方開始的轉換成整型數組,字符串數組    * @param sum 傳入派系的值,可以是一個派系的值,也可以是多個派系相加的值    *      2^1 + 2^2 這種    * 突然忘記移位操作也是一種指數冪的運算    * @return    */private static int[] toUgroupArray(int sum){	if(sum < 0){		System.out.println("you have an eroor code");	} else if(sum == 0) {		System.out.println("you have no choise code");	} else{		String binaryCode = Integer.toBinaryString(sum);		System.out.println("binary code:"+binaryCode);		int index = binaryCode.length() -1;		String str = "";		for (int i=0;i<binaryCode.length();i++){			if(binaryCode.charAt(i) == '1'){				str = str + index +",";			}			index --;		}		str = str.substring(0, str.length()-1);		System.out.println(str);		String[] strArray = str.split(",");		int[] result = new int[strArray.length];		//也可以返回一個字符數組 		//String[] result2 = new String[strArray.length]; 		for (int i=0;i<strArray.length;i++){			//result[i] = (int)Math.pow(2, Double.parseDouble(strArray[i])); 			result[i] = 2 << (Integer.parseint(strArray[i])-1);		}		return result;	}	return null;}

總結

以上就是本文關于java/299479.html">java中冪指數值的運算代碼解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 右玉县| 禹城市| 定远县| 铅山县| 刚察县| 惠东县| 龙井市| 隆尧县| 罗源县| 新乡市| 南充市| 望都县| 阿拉善右旗| 巫溪县| 镇原县| 中江县| 林甸县| 新竹市| 沙洋县| 喀喇沁旗| 龙岩市| 白朗县| 海宁市| 宜良县| 阿坝| 厦门市| 申扎县| 长白| 保定市| 遂平县| 成武县| 浦城县| 精河县| 韶山市| 新津县| 桃园市| 河东区| 凤台县| 中方县| 中方县| 潢川县|