2009-07-30 48 views
5

Có lớp mẫu C++ thực hiện các phép toán với hoán vị và nhóm hoán vị không? Lớp học như vậy phải thực hiện việc tìm kiếm sản phẩm và nghịch đảo, nhân, v.v.Có lớp C++ nào thực hiện các phép toán với hoán vị không?

+0

Trong C++ hiện đại, bạn sẽ không sử dụng lớp học cho việc này. Bạn có thể sử dụng nhiều mẫu chức năng. Một mẫu chức năng cho mỗi hoạt động bạn muốn hỗ trợ, với phạm vi đầu vào thực tế templatized. – MSalters

+0

Lập trình chức năng không phải là một tùy chọn. Lập trình hướng đối tượng là tốt. Tôi thực sự cần lớp mẫu. –

+2

@MSalters: "Phạm vi đầu vào" là gì cho một hàm có hai hoán vị và trả về sản phẩm của các hoán vị đó? Bạn có gợi ý rằng hoán vị bản thân được đại diện tốt nhất cho khách hàng như là cặp lặp hơn là đối tượng mờ? Tôi nghĩ Alexey là sau một cái gì đó với nhiều kiến ​​thức về lý thuyết nhóm hơn std :: next_permutation. –

Trả lời

3

This là tốt nhất mà tôi đã tìm thấy ... nhưng nằm trong C nên bạn sẽ phải viết trình bao bọc. CodeCogs cũng cung cấp cho bạn một thư viện về tổ hợp.

-3

STL bao gồm hàm hoán vị trong thuật toán.h. Đây là một ví dụ cho điều đó.

 
int main() { 
    int myints[] = {1,2,3}; 
    cout << "The 3! possible permutations with 3 elements:\n"; 
    sort (myints,myints+3); 
    do { 
    cout << myints[0] << " " << myints[1] <<" " << myints[2] << endl; 
    } while (next_permutation (myints,myints+3)); 
    return 0; 
} 
+2

Xin vui lòng, "thuật toán" không phải là "algorithm.h"! – KTC

+1

Làm cách nào để giúp tôi tìm thấy sự cho phép nghịch đảo chẳng hạn? –

+0

Nó không. Hàm này chỉ liệt kê các thành viên của nhóm hoán vị. Nó không biết gì về cấu trúc của nhóm - nó chỉ dựa vào các phần tử của mảng đầu vào có một thứ tự xác định. –

0

Tôi không biết một, nhưng phải dễ thực hiện. Trong nội bộ, bạn có thể biểu diễn hoán vị dưới dạng vectơ, ví dụ: (1 3 4 2 7 5 6) là một perm 1-7 gửi 1-> 1, 2-> 3, 3-> 4, 4-> 2 vv hoặc như một tập hợp các chu kỳ, ví dụ: (1) (2 3 4) (5 7 6), và thực hiện các hoạt động về mặt này. Có lẽ đối số mẫu sẽ là kích thước của nhóm hoán vị.

Các vấn đề liên quan