Comment puis-je implémenter la fonction suivante en C#?Comment puis-je implémenter la fonction de fréquence de touches de piano en C#?
Répondre
double F = 440.0 * Math.Pow(2.0, (n-49.0)/12.0);
+1 pour appeler Math.Pow une seule fois – ram
Vous avez raison, l'équation peut être simplifiée à votre réponse, mais j'ai fait une mise en œuvre directe. –
440 * Math.Pow(Math.Pow(2, 1.0/12), n - 49)
+1, strict au point –
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)
so ....
double d = 27.5 * Math.Pow(2, (n-1)/12.0)
Et depuis la racine 12 2 = 1.0594630943592952645618252949463, puis
double d = 27.5 * Math.Pow(1.0594630943592952645618252949463, (n-1))
so ...
double d = 27.5 * Math.Pow(1.059463094359295, (n-1));
J'espère que si cette solution est utilisée, un commentaire est placé pour la maintenabilité. –
Vous êtes sûr que les maths ont raison? Essayez n = 49. Vous devriez obtenir 440. –
bonne prise 12e racine de 2 = 1,059463094359295264562525949463, pas .083333333333333 ... J'ai couru Windows mal calc ... J'ai édité pour corriger. –
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
- 1. Comment implémenter CTRL-A combinaison de touches en C++
- 2. Clés de piano en disposition de balançoire: Rembourrage à gauche?
- 3. Comptage de valeurs distinctes dans la fonction de fréquence Excel
- 4. Comment implémenter la fréquence d'attaque dans le jeu?
- 5. Fréquence de la fréquence d'échantillonnage audio
- 6. Détecter la fréquence fondamentale
- 7. Comment régler la combinaison de touches Méta-Fonction dans Vim?
- 8. Mappe de touches multiples en C++
- 9. Comment implémenter la structure de type liste liée en C#?
- 10. comment implémenter le temporisateur en C/C++
- 11. touches de fonction de mappage dans vim
- 12. La mise en œuvre de la fonction Ceil en C
- 13. Comment implémenter la recherche ternaire en C?
- 14. Comment mapper les touches de fonction pour compiler mon programme?
- 15. comment implémenter cette fonction de paramètres d'extension
- 16. Est-il possible de modifier par programme un fichier son en fonction de la fréquence?
- 17. Définir le début de la tâche en fonction de la fréquence et du démarrage du serveur
- 18. Comment implémenter une action Ctrl + C en C#?
- 19. Comment utiliser plusieurs touches de modification en C#
- 20. Ipad app-like aide de piano!
- 21. Comment puis-je implémenter la fonction NORMDIST dans l'objectif c?
- 22. Comment implémenter une portée de transaction de mémoire en C#?
- 23. comment implémenter la fonctionnalité de déconnexion dans asp.net C#
- 24. Comment implémenter P2P en C#?
- 25. Comment implémenter la fonction 'amis' chronologie 'de twitter
- 26. comment implémenter la fonction de recherche dans Android
- 27. Fréquence fondamentale + détection de la voix dans C#
- 28. Comment extraire des informations de fréquence d'échantillons de PortAudio en utilisant FFTW en C
- 29. Comment implémenter le temporisateur usermode en C?
- 30. Comment implémenter la fonction 'escape' de javascript dans grails
Je vous suggère de vous familiariser avec System.Math.Pow - http://msdn.microsoft.com/en-us/library/system .math.pow (VS.71) .aspx - cela vous permettra de gérer à la fois les exposants et les n-racines. –
Construire un piano, êtes-vous? –
Comment est-ce un piano? Quelqu'un veut-il expliquer les pls? –