Có nhiều động cơ tính toán các thông số vô hướng, và có cơ tính cao cấp cho các bảng, thường được sử dụng cho các ứng dụng như lập kế hoạch tài chính, tính toán phí và hoa hồng, tính toán mạng và hợp đồng ...
Để tôi giải thích điều này ngay. Xem xét các công thức sau đây cho vô hướng:
1) z = f1(x,y)
2) p = f2(z,n)
3) q = f3(x,p)
...
v.v. Việc cấu hình các hàm và các cây phụ thuộc như vậy đòi hỏi một công cụ tính toán với các tham số vô hướng. Tôi sẽ (cũng) đề xuất liên kết sau đây cho một công cụ tính toán được viết bằng C# như một điểm khởi đầu tốt: http://www.codeproject.com/Articles/246374/A-Calculation-Engine-for-NET
Như đã đề cập, cũng có các công cụ tính toán có chức năng bảng. Nguyên tắc chính là giống nhau:
1) (T4, T5) = TableFunction1(T1, T2, T3)
2) (T7, T8) = TableFunction2(T2, T4)
...
v.v. Lưu ý rằng một hàm bảng có thể trả về nhiều bảng dưới dạng kết quả đầu ra, như được hiển thị ở trên.
Có hai vấn đề chính cần quan sát tại đây:
a) Giá trị của bảng T7 và T8 phụ thuộc vào bảng T2 và T4. Do đó, các bảng T7 và T8 cần phải được cập nhật bằng cách thực hiện hàm "TableFunction2" chỉ khi có thay đổi trong một trong các tham số đầu vào T2 hoặc T4.
Tương tự, T4 chỉ cần cập nhật nếu T1, T2 hoặc T3 được cập nhật; cây phụ thuộc!
b) Tách cơ sở dữ liệu khỏi quá trình tính toán: Công cụ tính toán phải hoạt động độc lập với bất kỳ cấu trúc dữ liệu cố định hoặc lược đồ cơ sở dữ liệu nào để có thể tích hợp với bất kỳ cơ sở dữ liệu và cấu trúc dữ liệu nào.
Bạn có thể tìm thấy bài viết có liên quan của tôi, nơi những nguyên tắc này được giải thích tại địa chỉ:
Kiến trúc logic của một khung Tính toán Rule-Based http://finaquant.com/logical-architecture-of-a-rule-based-calculation-framework/1053
Bây giờ, một C#/thư viện NET cho một công cụ tính toán với các bảng. khi các tham số đầu vào và đầu ra đang được phát triển dựa trên các nguyên tắc này.
Lưu ý cho người kiểm duyệt: Vui lòng xóa liên kết ở trên nếu được tính là tự quảng cáo.
Tra cứu "công cụ quy tắc" trong Windows Workflow Foundation. –
Tôi không biết nếu nó đã tồn tại, nhưng nó trông giống như một suy nghĩ tốt đẹp để thực hiện anyway, bạn 'chỉ cần INotifyPropertyChanging và phân hủy cây biểu hiện để liên kết depedencies. – Guillaume86