double n = -1/MathPow(5.5, 0.2); Print(n);
Ho bisogno di scrivere una funzione che funzioni con le potenze e nel processo ho scoperto qualcosa di interessante:
Se sostituisco un numero frazionario negativo a una potenza frazionaria negativa, MQL5 scrive -nan.
L'ho controllato in C++ e ho ottenuto lo stesso risultato (non so quale versione del linguaggio sia stata usata, perché ero troppo pigro per compilare e l'ho solo testato con cpp.sh).
I plus danno la stessa risposta, non c'è nessun errore in MQL5! Ma qual è la ragione di una tale risposta? Se usiamo la matematica, la risposta dovrebbe essere data. Matematicamente, un numero alla potenza negativa è uguale a uno diviso per lo stesso numero alla potenza positiva. In altre parole:
E la calcolatrice del computer lo conferma. Cos'è questa storia dei gradi?
In R:
(-5,5)^-0,2=NaN
-5.5^-0.2=-(5.5^-0.2)=-0.7110947
in R:
(-5,5)^-0,2=NaN
-5.5^-0.2=-(5.5^-0.2)=-0.7110947
Forse le gambe crescono dal fatto che non si può prendere una radice pari da un numero negativo? Sono già un po' confuso... E soprattutto come aggirarlo?
E soprattutto come aggirarlo?
m = 2
n = 10
double result = pow(pow(-5.5,2.0),-0.1); Print("result = ",result); //result = 0.7110947333604484senza parentesi, il segno meno può essere interpretato diversamente, imho
Ci sarà un problema con i cartelli. La radice di una potenza pari è sempre positiva
Ci sarà un problema con i cartelli. La radice di una potenza pari è sempre positiva.
Nel calcolatore in cui il grado è frazionario
1/(-5.5 ^ -0.2) -0,7110947333604484236326007791589
In mql dove il grado è frazionario
double n = 1/MathPow(-5.5, -0.2); Print(n); zero divide in 'Pow.mq5'
In mql dove il grado è intero.
double n = 1/MathPow(-3.0, -3.0); Print(n); -27.0
Conclusione, la funzione non conta correttamente le potenze frazionarie e restituisce zero divide.
m = 2
n = 10
senza parentesi il segno meno può essere interpretato diversamente, imhoGrazie per la risposta, ma in generale se prendiamo una soluzione aritmeticamente corretta, sembra che solo i numeri complessi possano essere usati per implementare tale soluzione... Nel metodo da voi proposto è necessario dividere il grado in modo che il valore sottostante abbia sempre un grado positivo e la risposta sarà sempre positiva. Ma se si prende senza questo adattamento - si arriva solo ai numeri complessi, perché secondo il modello algebrico generalmente accettato per quanto ne so (non sono un matematico di formazione) - la radice di un numero negativo sarà un numero complesso.
In mql dove è il grado frazionario
In mql dove il grado è frazionario
In mql dove il grado è intero.
Conclusione, la funzione non conta correttamente i gradi frazionari, e restituisce zero divide.
La funzione è corretta. La matematica standard non funziona lì)
La funzione è corretta. La matematica standard semplicemente non ci sta)
-0,2 non è zero per restituire un errore di divisione per zero.

- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Ho bisogno di scrivere una funzione che funzioni con le potenze e nel processo ho scoperto qualcosa di interessante:
Se sostituisco un numero frazionario negativo a un grado frazionario negativo, MQL5 scrive -nan.
L'ho controllato in C++ e ho ottenuto lo stesso risultato (non so quale versione del linguaggio sia stata usata, perché ero troppo pigro per compilare e l'ho solo testato con cpp.sh).
Penso che non ci sia nessun errore in MQL5 se la risposta è la stessa in più! Ma la domanda è: perché succede così? Se facciamo i conti, la risposta dovrebbe essere lì. Matematicamente, un numero negativo è uguale a uno diviso per lo stesso numero alla potenza positiva. In altre parole:
E la calcolatrice del computer lo conferma. Cos'è questo trucco dei voti?