8

如何在 C# 中实现以下功能?

替代文字

4

4 回答 4

34
double F = 440.0 * Math.Pow(2.0, (n-49.0)/12.0);
于 2009-12-11T23:35:22.037 回答
13
440 * Math.Pow(Math.Pow(2, 1.0/12), n - 49)
于 2009-12-11T23:33:32.073 回答
2
440 * 12th root of 2 raised to n-49 
 = 440 * (2 ^ 1/12) ^(n-49)
 = 440 * 2^(n/12) / 2^(49/12)
 = 440 * 2^(n/12) / (2^4 * 2^1/12)
 = 440 * ( 1 / 2^4 ) * 2^((n-1) /12)
 = 8 * 55 * ( 1/16 ) * 2^((n-1) /12)
 = 27.5 * 2^((n-1) /12)

所以 ....

double d = 27.5 * Math.Pow(2, (n-1) / 12.0)

由于 2 的第 12 个根 = 1.0594630943592952645618252949463,那么

double d  = 27.5 * Math.Pow(1.0594630943592952645618252949463, (n-1))

所以...

 double d = 27.5 * Math.Pow(1.059463094359295, (n-1));
于 2009-12-12T02:08:01.697 回答
0

http://www.codeproject.com/script/Articles/ArticleVersion.aspx?aid=339638&av=501750

string funcion= "440*((2)^(1/12))^(X-49)";

X=4
double FX= GetValueFunc(4);
;) jeje
于 2012-03-03T14:55:19.360 回答