Làm cách nào để phân tích biểu thức toán học JavaScript?

Mã thông báo được định nghĩa theo cách tương tự như 1. phiên bản x. Bạn có thể tham khảo tệp thử nghiệm trên các ví dụ về cách thêm mã thông báo. Vì gói này tương thích với TS nên bạn sẽ nhận được tính năng tự động hoàn tất vào ngày

bower install math-expression-evaluator
0

  • Thêm mã thông báo bằng phương thức addToken của đối tượng mexp

     const mexp = new Mexp[]
     mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
    
  • Thêm mã thông báo bằng phương thức eval của đối tượng mexp

     const mexp = new Mexp[]
     mexp.eval["expression", [token1, token2]] // tokens once added will be preserved in later evaluations
    
  • Thêm mã thông báo bằng cách sử dụng các thành phần của phương thức eval của đối tượng mexp

     const mexp = new Mexp[]
     const answer = mexp.postfixEval[mexp.toPostfix[mexp.lexed["expression", [token1, token2]]]] // tokens once added will be preserved in later evaluations
     console.log[answer]
    
  • Làm thế nào để chạy thử nghiệm

    npm test
    

    Biểu tượng được hỗ trợ

    Giải thích biểu tượng + Toán tử bổ sung, vd. 2+3 kết quả Toán tử trừ 5, vd. 2-3 kết quả -1/ Toán tử chia ví dụ 3/2 kết quả 1. Toán tử nhân 5*, vd. 2*3 kết quả Toán tử 6ModModulus, vd. 3 Mod 2 kết quả 1[Mở ngoặc đơn]Đóng ngoặc đơn&Bitwise AND vd. 3&1 kết quả 1SigmaSummation ví dụ. Kết quả Sigma[1.100,n] 5050PiProduct ví dụ. Kết quả Pi[1,10,n] 3628800nVariable cho Summation hoặc ProductpiMath hằng số pi trả về 3. 14eMath hằng số e trả về 2. Toán tử kết hợp 71C chẳng hạn. 4C2 trả về toán tử 6PPermutation, vd. 4P2 trả về 12. toán tử giai thừa, vd. 4. trả về hàm 24loglogarit với cơ số 10, vd. log 1000 trả về 3lnhàm log tự nhiên với cơ số e, vd. ln 2 trả về. Hàm 3010powpower với hai toán tử pow[2,3] trả về toán tử 8^power, vd. 2^3 trả về 8rootunderroot function root 4 trả về 2sinHàm sin cosHàm CosinetanHàm tiếp tuyếnasinHàm nghịch đảo sin acosHàm nghịch đảo CosineatanHàm nghịch đảoSinhHàm sin hyperboliccoshHàm hyperbolic costanhHàm tiếp tuyến hyperbolic asinhHàm sin hyperbolic nghịch đảoacoshHàm nghịch đảo Hyperbolic TangentHàm hyperbolic tangent

    Đặc trưng

    Hỗ trợ tuyệt vời cho Sigma và Pi

    Đây là một tính năng tuyệt vời của máy tính này mà nó có khả năng đánh giá các biểu thức có chứa Sigma và Pi. Vượt qua

    bower install math-expression-evaluator
    
    1 sẽ có giá trị là 5050 vì n được tính tổng từ 1 đến 100. và Pi[1,15,n] sẽ đánh giá là 1307674368000 khi n được nhân từ 1 đến 15 bằng 15

    Dấu ngoặc đơn bớt biểu thức

    Nếu một biểu thức có thể đọc được bởi con người thì nó có thể được đọc bởi người đánh giá này. Không cần phải bọc mọi chức năng bên trong dấu ngoặc đơn. ví dụ. sin90 sẽ hoạt động hoàn toàn tốt thay vì sin[90]

    fparser cung cấp một lớp Công thức để phân tích các chuỗi chứa các công thức toán học [e. g.

    // As node module:
    Install:
    $ npm install --save fparser
    
    Use:
    const Formula = require['fparser'];
    
    or:
    import Formula from 'fparser';
    1] thành một đối tượng có thể đánh giá. Sau đó, người ta có thể cung cấp các giá trị cho tất cả các biến/hàm chưa biết và đánh giá một giá trị số từ công thức

    Đối với một ứng dụng ví dụ, xem https. //fparser. alexi. ch/

    Đặc trưng

    Phân tích một công thức toán học từ một chuỗi. biểu thức đã biết

    • Các số ở dạng [-]chữ số[. chữ số], e. g. "-133. 2945"
    • toán tử đơn giản. '+','-','*','/', '^' được mở rộng theo đúng thứ tự
    • dấu ngoặc đơn '[', ']' để nhóm [e. g. "5*[3+2]"]
    • tất cả các hàm đối tượng JavaScript Math [e. g. "tội lỗi [3. 14]"]
    • tất cả các hằng số Toán học JavaScript như PI, E
    • việc sử dụng các chức năng riêng
    • việc sử dụng các biến ký tự đơn [như '2x']
    • việc sử dụng các biến được đặt tên [như '2*[myVar]']
    • ghi nhớ. lưu trữ các kết quả đã được đánh giá để tính toán lại nhanh hơn
    • sử dụng nó trong các trang Web, dưới dạng mô-đun ES6 hoặc mô-đun NodeJS
    • Ví dụ.
      ______62

    Cách sử dụng

    ________số 8

    // As node module:
    Install:
    $ npm install --save fparser
    
    Use:
    const Formula = require['fparser'];
    
    or:
    import Formula from 'fparser';

     const mexp = new Mexp[]
     mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
    
    0

    Lựa chọn khác

    Sử dụng nhiều biến

     const mexp = new Mexp[]
     mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
    
    1

    Sử dụng các biến được đặt tên

    Thay vì các biến ký tự đơn [như

    // As node module:
    Install:
    $ npm install --save fparser
    
    Use:
    const Formula = require['fparser'];
    
    or:
    import Formula from 'fparser';
    3], bạn cũng có thể sử dụng các biến được đặt tên trong ngoặc đơn

     const mexp = new Mexp[]
     mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
    
    3

    Sử dụng các hàm do người dùng định nghĩa

     const mexp = new Mexp[]
     mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
    
    4

    Sử dụng lại một đối tượng Công thức

    Bạn có thể khởi tạo một đối tượng Công thức không có công thức và đặt nó sau, thậm chí sử dụng lại đối tượng hiện có

     const mexp = new Mexp[]
     mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
    
    5

    ghi nhớ

    Để tránh tính toán lại các kết quả đã được đánh giá, đối tượng trình phân tích cú pháp công thức hỗ trợ tính năng ghi nhớ. nó lưu trữ các kết quả đã được đánh giá cho các tham số biểu thức đã cho

    Ví dụ

     const mexp = new Mexp[]
     mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
    
    6

    Bạn có thể bật/tắt tính năng ghi nhớ trên đối tượng

     const mexp = new Mexp[]
     mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
    
    7

    Nhận tất cả các biến đã sử dụng

     const mexp = new Mexp[]
     mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
    
    8

    Nhận chuỗi công thức được phân tích cú pháp

    Sau khi phân tích cú pháp, lấy chuỗi công thức dưới dạng phân tích cú pháp

    // As node module:
    Install:
    $ npm install --save fparser
    
    Use:
    const Formula = require['fparser'];
    
    or:
    import Formula from 'fparser';
    0

    Nhật ký thay đổi

    2. 0. 2

    • Khắc phục sự cố #22. Nếu công thức bắt đầu với một biến phủ định duy nhất [e. g.
      // As node module:
      Install:
      $ npm install --save fparser
      
      Use:
      const Formula = require['fparser'];
      
      or:
      import Formula from 'fparser';
      4], trình phân tích cú pháp bị nhầm lẫn

    2. 0. 0

    Bản phát hành này là một vamp hoàn chỉnh, xem bên dưới. nó phải hoàn toàn tương thích ngược với 1. x, nhưng tôi đã không kiểm tra tất cả các trường hợp biên

    Làm cách nào để xác thực biểu thức số học trong JavaScript?

    1 câu trả lời .
    Thêm khoảng trắng vào cả hai bên của biểu thức [làm cho việc so khớp biểu thức chính quy dễ dàng hơn]
    Tiền tố bất kỳ chuỗi gồm nhiều chữ cái với Math. .
    Thay thế mọi chữ cái không phải là một phần của chuỗi nhiều chữ cái bằng 1. .
    Kiểm tra xem đánh giá biểu thức có dẫn đến kết quả số không

    Phân tích cú pháp trong toán học là gì?

    Trình phân tích cú pháp. Đọc mã thông báo được xuất ra từ từ vựng và phân tích chúng thành một cấu trúc như RPN hoặc AST . Nó định hình lại các mã thông báo thành một cấu trúc theo các quy tắc như quyền ưu tiên của toán tử. người đánh giá. Xử lý đầu ra của trình phân tích cú pháp và tạo ra kết quả mà người dùng muốn xem.

    Làm cách nào để tính toán một biểu thức toán học được lưu dưới dạng chuỗi trong Java?

    Để đánh giá biểu thức toán học trong Chuỗi, hãy sử dụng Nashorn JavaScript trong Java i. e. viết kịch bản . Nashorn gọi tính năng động, được giới thiệu trong Java 7 để cải thiện hiệu suất.

    Chủ Đề