日期:2014-05-16  浏览次数:20387 次

可不可以用js模拟sin函数????
就是写一个函数 名字例如:sinClone
实现:sinClone()和sin输出的结果相同(注意:别傻了吧唧的里面调用个sin函数 然后笑着说 “我实现了”)

------解决方案--------------------
泰勒级数
function factorial(n) {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}

function countN(x, n) {
return Math.pow(-1, n) / factorial(2 * n + 1) * Math.pow(x, 2 * n + 1);
}

/**
 * 正弦函数。
 * 参数:
 * x 单位:弧度(x <= pi/2)
 * maxN 泰勒级数计算时n的最大值
 */
function sin(x, maxN) {
if (maxN == undefined) {
maxN = 8;
}

var sin = 0;
for (var n = 0; n <= maxN; n++) {
sin += countN(x, n);
}
return sin;
}

sin(0);
sin(Math.PI/6);
sin(Math.PI/4);
sin(Math.PI/3);
sin(Math.PI/2);
------解决方案--------------------