需要帮助近似欧拉常数
Need help making an approximation of Euler's constant
它非常接近,但只差一个数字。如果您可以在这里更改任何内容以使其更好,我们将不胜感激。我正在将我的号码与Math.E
进行比较,看看我是否接近。
var e = (function() {
var factorial = function(n) {
var a = 1;
for (var i = 1; i <= n; i++) {
a = a * i;
}
return a;
};
for (var k = 0, b = []; k < 18; k++) {
b.push(b.length ? b[k - 1] + 1 / factorial(k) : 1 / factorial(k));
}
return b[b.length - 1];
})();
document.write(e);document.write('<br />'+ Math.E);
我的号码: 2.7182818284590455
Math.E
: 2.718281828459045
从较高的数字到较小的数字工作,以最大程度地减少取消:
var e = 1;
for(var k = 17; k > 0; --k) {
e = 1 + e/k;
}
return e;
根据霍纳规则计算泰勒多项式甚至可以避免阶乘,并允许您使用更多项(不过,超过 17 不会有区别)。
据
我所知,您的数字与Math.E
相同,甚至具有更好的精度。
2.7182818284590455
2.718281828459045
到底是什么问题?
使用 javascript
,由于 javascript 计算的精度水平,您无法以这种方式计算 e。 有关详细信息,请参阅 http://www.javascripter.net/faq/accuracy.htm。
要演示此问题,请查看以下小提琴,它计算 e 时 n 从 50000000 开始,每 10 毫秒递增 n 1:
http://jsfiddle.net/q8xRs/1/
我喜欢使用整数值来近似实数值.
e的可能近似值按精度递增的顺序为:
11/487/3223225/8544
3442297523731/1266350489376
最后一个相当准确,相当于:
2.7182818284590452213260834432
直到18日才偏离维基百科的价值:
2.71828182845904523536028747135266249775724709369995
所以,如果你有兴趣的话。
相关文章:
- 需要帮助设置json数组
- JQuery需要帮助理解(i,el)
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 需要帮助谷歌地图方向面板在FancyBox中显示
- 我需要为我的朋友在这个项目上提供帮助
- 使用密码对话框Javascript请求帮助
- JavaScript计算帮助(乘以时间)
- 另一个if(!$scope.$$phase)$scope$apply()szenario-需要帮助才能通关
- Angular ng类需要帮助设置
- {{#each}}内部的Handlebar帮助程序
- 很少有角服务,只有常数不同
- php帮助-需要使用字符串回显php
- JavaScript,JQuery.需要帮助才能获得'name'从我的JSON中删除
- jQuery基于下拉选择更新帮助文本
- 需要比特币校验地址和json帮助
- 在JavaScript中处理数组和对象时需要帮助
- JavaScript表单提交帮助
- 需要有关修剪JavaScript的帮助
- 需要帮助自定义幻灯片自动播放
- 需要帮助近似欧拉常数