Quali sono gli approcci conosciuti per rappresentare graficamente le espressioni algebriche?

0

Sto progettando di costruire un parser di espressioni che sarà usato per rappresentare graficamente funzioni algebriche (si pensi a TI-83) con JavaScript.

Le funzioni assumeranno la forma di f(x)=

Oltre agli operatori tipici come: + - * / ^

Vorrei anche aggiungere il supporto per funzioni inline come: sin() , cos() , log() e random() .

Ho esaminato l'implementazione dell'algoritmo Shunting Yard per le espressioni di parsing, ma non sembra un approccio efficiente per valutare una funzione con centinaia o migliaia di input. Quali altri algoritmi noti esistono per questa attività?

    
posta JeremyFromEarth 31.03.2012 - 18:29
fonte

1 risposta

1

Shunting Yard è O (n) sulla lunghezza della funzione. Non puoi ottenere una complessità asintotica migliore di quella, quindi ti rimane una potenziale accelerazione lineare. L'unica cosa che posso pensare che potrebbe essere più veloce è tradurre la funzione in javascript nativo e usare eval . Sicuramente vuoi fare un punto di riferimento, però. Un'altra cosa da fare sarebbe generare una sola volta la versione RPN, quindi eseguirla per ogni valore di x .

    
risposta data 31.03.2012 - 19:16
fonte

Leggi altre domande sui tag