-
用java二分法计算a的n次幂_用二分法计算a的n次幂<算法分析>
2021-02-26 17:42:153、掌握使用java程序进行二分法计算a的n次幂。实验步骤:1、由用户输入a及n(均为整数);2、利用二分法完成计算,并将中间结果打印出来。package erfencimi;import java.util.Scanner;public class Power {public ...实验目的:
1、复习java编程;
2、掌握二分法的基本原理;
3、掌握使用java程序进行二分法计算a的n次幂。
实验步骤:
1、由用户输入a及n(均为整数);
2、利用二分法完成计算,并将中间结果打印出来。
package erfencimi;
import java.util.Scanner;
public class Power {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//输入a和n数值
System.out.print("请输入 a 的值:");
int a = scanner.nextInt();
System.out.print("请输入 n 的值:");
int n = scanner.nextInt();
int c=0;
System.out.println("a = " + a + "\t" + "n = " + n);
//打印输出二分过程
for(int b=1;b<=n;n=n/2)
{
System.out.println(a + "的" + n + "次方为(第"+c+"次二分):" + function(a, n));
c++;
}
c=c-1;
//二分次数总计
System.out.println("总共进行了" + c + "次二分!");
}
//求二分次幂函数
private static long function(int a, int n) {
if(n == 1) { //指数是1时直接返回数字a
return a;
} else {
if(n % 2 == 0) {//如果是偶数次幂直接将指数进行二分
return (int)Math.pow(function(a, n/2), 2);
} else {//如果是奇数次幂将指数减一再进行二分
return (int)Math.pow(function(a, (n-1)/2), 2) * a;
}
}
}
}
运行结果如下:
-
Java实现N的N次幂
2019-07-20 18:08:48如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗? 显然,这个值是介于2和3之间的一个数字。 请把x的值计算到小数后6位(四舍五入),并填写这个小数值。 注意:只填写一个小数,不要写任何多余的...如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗?
显然,这个值是介于2和3之间的一个数字。
请把x的值计算到小数后6位(四舍五入),并填写这个小数值。
注意:只填写一个小数,不要写任何多余的符号或说明。
答案:2.506184
public class Main { public static double min = 10; public static void main(String[] args) { double result = 0; for(double i = 2.5;i <= 2.6;i = i + 0.00000001) { double r = Math.abs(10 - Math.pow(i, i)); if(min > r) { min = r; result = i; } } System.out.printf("%.6f", result); System.out.println("\n"+result); System.out.println(Math.pow(result, result)); } }
-
pow x n java_Java实现 pow(x, n) ,即计算 x 的 n 次幂函数。
2021-03-04 08:08:581024.00000示例2:输入: 2.10000, 3输出: 9.26100示例3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/powx-npublic double myPow(d...示例 1:
输入: 2.00000, 10
输出: 1024.00000
示例 2:
输入: 2.10000, 3
输出: 9.26100
示例 3:
输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/powx-n
public double myPow(double x, int n) {
//核心思想主要还是折半,把原本比较大的这个幂变成原来的一半,这样结果就可以通过这个一半的幂相乘来组成了
if (n == 0) {//任何数的0次幂都是1
return 1;
}
//把这个问题转换成更小的问题进行解决
double half = myPow(x,n/2);
//如果是个偶数的话,就正好是一半幂的乘积
if (n%2 == 0) {
return half*half;
}
//如果是奇数并且n>0的话
if(n > 0) {
return half*half*x;
}
return half*half/x;
}
经典的把一个相对较大的问题使用折半的方法转换成较小的问题,代码注释中也写明了解释。
还有另一种相同的思想,只是用循环来实现的,如下:
public double myPow(double x, int n) {
double res = 1.0;
int i = n;
while (i != 0) {
//如果是奇数,那么还要多乘一个x
if (i%2 != 0) {
res *= x;
}
//偶数直接自我平方
x *= x;
//折半
i /= 2;
}
//判断n的正负来返回正确答案
return n < 0 ? 1/res : res;
}
-
Java实现 pow(x, n) ,即计算 x 的 n 次幂函数。
2020-05-11 10:22:43输入: 2.00000, 10 输出: 1024.00000 示例2: 输入: 2.10000, 3 输出: 9.26100 示例3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 来源:力扣(LeetCode)链接:...示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/powx-n
public double myPow(double x, int n) { //核心思想主要还是折半,把原本比较大的这个幂变成原来的一半,这样结果就可以通过这个一半的幂相乘来组成了 if (n == 0) {//任何数的0次幂都是1 return 1; } //把这个问题转换成更小的问题进行解决 double half = myPow(x,n/2); //如果是个偶数的话,就正好是一半幂的乘积 if (n%2 == 0) { return half*half; } //如果是奇数并且n>0的话 if(n > 0) { return half*half*x; } return half*half/x; }
经典的把一个相对较大的问题使用折半的方法转换成较小的问题,代码注释中也写明了解释。
还有另一种相同的思想,只是用循环来实现的,如下:
public double myPow(double x, int n) { double res = 1.0; int i = n; while (i != 0) { //如果是奇数,那么还要多乘一个x if (i%2 != 0) { res *= x; } //偶数直接自我平方 x *= x; //折半 i /= 2; } //判断n的正负来返回正确答案 return n < 0 ? 1/res : res; }
-
Java轻松搞定leetcode前100系列之50. Pow(x, n) java实现x的n次幂函数
2021-02-22 11:35:20实现pow(x, n),即计算 x 的 n 次幂函数(即,xn)。 示例 1: 输入:x = 2.00000, n = 10 输出:1024.00000 示例 2: 输入:x = 2.10000, n = 3 输出:9.26100 示例 3: 输入:x = 2.00000, n = -2 ... -
用二分法计算a的n次幂<算法分析>
2017-05-09 10:40:003、掌握使用java程序进行二分法计算a的n次幂。实验步骤:1、由用户输入a及n(均为整数);2、利用二分法完成计算,并将中间结果打印出来。 package erfencimi; import java.util.Scanner; public class Power {... -
java - LeetCode 50.Pow(x, n) 计算x的n次幂函数(三种解法)(详细讲解,小白入手)
2020-11-28 01:10:46计算x的n次幂函数。 -100.0 < x < 100.0 n 是 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1] 。 解析: 负数的边界 -2^31 , 直接转正数会越界。 正数边界2^31 − 1,负数转正2^31,越界。 所以将n的... -
java 实例 设计一个方法,计算一个数的n次幂
2017-03-22 21:26:00例如,首先输入 2 4就是计算2的4次方,如果出现负数,则抛出异常 代码如下: import java.util.*; import java.util.Scanner; class MyCalculator { long power(int n, int p) throws Exception { if (n &... -
Java位运算之2的N次幂、整数转换、寻找只出现一次的数
2019-04-13 08:58:30因为所有数在内存中都是以二进制存放,故直接对数的二进制位进行操作非常快,比如乘法、除2操作:通过左右移二进制位即可,无需将数转为十进制后再通过加法完成(乘法本质是由加法实现的) Java位运算的简单实现: /... -
java 大数值 高次幂_矩阵高次幂的实用计算方法(Ⅰ)
2021-03-11 13:33:54矩阵高次幂的实用计算方法(Ⅰ)全生寅【摘要】本文就矩阵高次幂An的计算问题作了一些探讨,总结出多种实用的计算方法.特别考察了矩阵Sn=E+A+A2+…+An,当n取充分大时Sn的"极限"行为.【期刊名称】《青海大学学报(自然... -
java中计算幂_Java程序计算数字的幂
2021-03-09 04:38:20将基数本身乘以基数,再将结果乘以基数(再次)重复n次,其中n是指数值。2^5=2X2X2X2X2(5times)示例importjava.util.Scanner;publicclassPowerOfNumber{publicstaticvoidmain(Stringargs[]){Scannersc=newScanner... -
LeetCode 50.x的N次幂 java实现 个人算法之旅
2019-03-09 16:47:38实现pow(x,n),即计算 x 的 n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例2: 输入: 2.10000, 3 输出: 9.26100 示例3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 ... -
java:(a+b)的n次幂的展开式中各项的系数很有规律
2019-10-28 22:15:38java:(a+b)的n次幂的展开式中各项的系数很有规律 对于n=2,3,4时分别是: 1 2 1, 1 3 3 1, 1 4 6 4 1. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 下列的程序给出了计算第m层的第n个系数的计算方法,试完善之... -
java语言不用pow函数求x的n次方_【算法】自己实现x的n次幂(pow函数)
2021-03-13 03:15:47面试遇到了一个问题,是自己实现一个pow(x,n)函数返回一个值,是x的n次幂,回想当时回答的不好,就是死板的直接while 一直乘下去,面试官始不太满意,我想也是,这也太简单了,可是当时死活也想不出怎么优化,刚一... -
读入1个实数x和1个正整数n(n),计算并输出x的n次幂。
2019-10-03 05:20:10代码: 1 import java.util.*; 2 public class Main { 3 public static void main (String [] args) { 4 Scanner s=new Scanner(System.in); 5 double x=s.nextDouble(); ... -
java 金字塔 2的幂_Java 作业 1
2021-03-16 13:59:317-1 计算n位(3≤n≤7)水仙花数 (15分)水仙花数(Narcissistic number)也被称为超完全数字不变数... 水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153;... -
java实现快速求A的p次幂算法
2019-05-21 19:25:08算法主要用到了两个公式 ...//计算A的p次幂,Math.pow(A,p) public static float RaiseToPower(float A,int p) { //将迭代的数存在数组里 float sum = 1; float[] a = new float[p]; a[1] ... -
实数的整数次幂( java实现)
2020-01-20 12:25:27幂就是底数的乘积,如果直接暴力破解时间复杂度为O(N) 下面是两种优化算法 解法一:递归(时间复杂度O(NlogN)) 原理: 求x^n: 如果n是偶数,则计算x^(n/2) * x^(n/2); 如果n是奇数,则计算x^(n/2) * ... -
java HashMap的线程不安全的体现、扩容2次幂,jdk1.7 扩容链表死循环。
2020-11-22 21:05:44为何每次扩容都是2的n次幂 hashMap table的长度为2^n 原因 jdk1.8的index索引计算方法为 (table的长度-1)&key的hash值 (1)扩容时要么是元索引位置、要么是源索引位置+原数组长度、可以减少重算hash。 下... -
java 矩阵的卷积_矩阵快速幂的JAVA实现
2021-03-22 15:01:59如何快速的算出一个矩阵的N次幂呢,举个例子,比如A^19 => (A^16)*(A^2)*(A^1)显然采取这样的方式计算时因子数将是log(n)级别的(原来的因子数是n),不仅这样,因子间也是存在某种联系的。 比如A^4能通过(A^2)*(A^... -
输入一个正整数repeat(0),做repeat次下列运算:读入1个实数x和1个正整数n(n),计算并输出x的n次幂。...
2019-10-03 05:19:59代码: 1 import java.util.*; 2 public class Main { 3 public static void main (String [] args) { 4 int repeat,n; 5 double x; 6 Scanner s=new Scanner(Sys... -
java 取 幂_Java 算法-快速幂
2021-03-17 13:57:20说实话,自己是第一次接触到快速幂这种东西,觉得有必要记录下来。题意:计算a^n % b,其中a,b和n都是32位的...快速幂快速幂,顾名思义就是快速的求次幂,例如:a^b,普通的算法就是累乘,这样的计算方法的时间复... -
LeetCode 50. Pow(x, n) JAVA 快速幂
2020-09-19 12:54:23实现 pow(x, n) ,即计算 x 的 n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 ... -
HashMap中容量为2的整数次幂问题?
2019-10-16 18:43:50hashMap容量问题: hashMap是通过key的hash运算,解决key在哪,在java8中,key的...n为2的整数倍,那么n-1就是一个奇数,奇数的最后一位肯定为1. 为1的好处就是(n-1) & hash的值后一位为0或者为1,如果n不是... -
矩阵快速幂的JAVA实现
2017-02-10 21:36:29**如何快速的算出一个矩阵的N次幂呢,举个例子,比如A^19 => (A^16)*(A^2)*(A^1)显然采取这样的方式计算时因子数将是log(n)级别的(原来的因子数是n),不仅这样,因子间也是存在某种联系的。 比如A^4能通过(A^... -
Java算法学习——快速幂
2019-07-04 23:49:53快速幂:顾名思义就是快速的求一个数的n次幂。例如:an,直接的算法就是累乘,这样的计算方法时间复杂度为O(n)。而快速幂可以降低时间复杂度至O(log(n))。 那么快速幂是如何降低时间复杂度的呢? 接下来我举个例子,... -
Java 算法-快速幂
2019-10-01 14:51:45快速幂,顾名思义就是快速的求次幂,例如:a^b,普通的算法就是累乘,这样的计算方法的时间复杂度就是O(n),而快速幂的方法使得次幂的计算方法的时间复杂度降低到O(logn). 假设我们要求a^b的结果,这里我们可以将... -
java 算法-快速幂
2019-03-01 21:43:49java 算法-快速幂 ...计算a^n % b,其中a,b和n都是32位的整数。 样例: 例如 2^31 % 3 = 2 例如 100^1000 % 1000 = 0 挑战: O(logn) 1.解题思路 在介绍这个题的解题思路之前,我先来简单的介绍...