Java 快速求解x的x次幂结果为10

1.问题描述

如果x的x次幂结果为10(如图所示),你能计算出x的近似值吗?
显然,这个值是介于2和3之间的一个数字。
可以使用牛顿迭代公式进行求解,因为是逼近算法可以大大减少运算次数
在这里插入图片描述

		public static void main(String[] args) {
			int i = 0;
			double x1 = 2.5;
			while (true) {
				i++;
                //x^x - 10 = 0
                //这一步是牛顿迭代公式
				double x2 = x1 - (Math.pow(x1, x1) - 10) / (Math.pow(x1, x1) * (Math.log(x1) + 1));

				if (Math.abs(x2 - x1) < 0.00000001) {
					System.out.println(String.format("通过运算%d次,得到结果为%.6f",i,x2));
					break;
				}
				x1 = x2;
			}
		}

运行结果

通过运算3次,得到结果为2.506184

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值