Come posso implementare la funzione di frequenza tasto di pianoforte in C #?
Domanda
Come posso implementare la seguente funzione in C #?
Soluzione
double F = 440.0 * Math.Pow(2.0, (n-49.0)/12.0);
Altri suggerimenti
440 * Math.Pow(Math.Pow(2, 1.0/12), n - 49)
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)
così ....
double d = 27.5 * Math.Pow(2, (n-1) / 12.0)
E dal 12 radice di 2 = 1.0594630943592952645618252949463, poi
double d = 27.5 * Math.Pow(1.0594630943592952645618252949463, (n-1))
così ...
double d = 27.5 * Math.Pow(1.059463094359295, (n-1));
http://www.codeproject.com/script/ articoli / ArticleVersion.aspx? aiuto = 339.638 & av = 501.750
string funcion= "440*((2)^(1/12))^(X-49)";
X=4
double FX= GetValueFunc(4);
;) jeje
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow