Czy istnieje klasa szablonu C++, która implementuje operacje z permutacjami i grupą permutacji? Taka klasa musi zaimplementować znajdowanie produktu i odwrotność, mnożenie itd.Czy istnieje klasa C++, która implementuje operacje z permutacjami?
Odpowiedz
STL zawiera funkcję permutacji w algorytmie.h. Oto przykład tego.
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; }
Proszę "algorytm", a nie "algorytm.h"! – KTC
Jak to na przykład pomaga mi znaleźć odwrotną permutację? –
Nie ma. Ta funkcja jedynie wylicza członków grupy permutacji. Nie wie nic o strukturze grupy - opiera się tylko na elementach tablicy wejściowej o określonej kolejności. –
Nie znam jednego, ale powinno być łatwe do wdrożenia. Wewnętrznie możesz reprezentować permutację jako wektor, np. (1 3 4 2 7 5 6) jest perm od 1-7 wysyłania 1-> 1, 2-> 3, 3-> 4, 4-> 2 itp. Lub jako zestaw cykli np. (1) (2 3 4) (5 7 6) i realizować operacje w kategoriach tych. Przypuszczalnie argument szablonu byłby wielkością grupy permutacyjnej.
- 1. Klasa Java, która implementuje mapę i zachowuje kolejność wstawiania?
- 2. Czy istnieje klasa wirtualna w języku C#?
- 3. Java abstrakcyjna klasa implementuje interfejs
- 4. Czy istnieje klasa Java, która generuje plik POM.xml?
- 5. Czy istnieje klasa sorted_vector, która obsługuje funkcję insert() itd.?
- 6. Czy należy utworzyć interfejs, kiedy (obecnie) będzie tylko jedna klasa, która go implementuje?
- 7. Sprawdź, czy istnieje klasa
- 8. Scala: Czy można wskazać klasę ogólną, która implementuje określoną metodę?
- 9. Jak sprawdzić, czy istnieje klasa?
- 10. Serializacja zmiennej klasy, która nie implementuje serializacji
- 11. Kompilator C# narzeka, że klasa abstrakcyjna nie implementuje interfejsu?
- 12. Czy istnieje klasa sterty w C++, która obsługuje zmianę priorytetu elementów innych niż głowa?
- 13. Rodzaj klasy, która implementuje wiele interfejsów
- 14. mapa do klasy, która implementuje interfejs
- 15. rodzajowych: dziedziczenie z klasy abstrakcyjnej, która implementuje interfejs
- 16. Czy istnieje klasa IndexSet i klasa Range dla Java?
- 17. Jak ustalić, czy klasa Java implementuje dany interfejs
- 18. Czy istnieje standardowa cykliczna klasa całkowita w C++?
- 19. parse anonimowa klasa nie implementuje metody abstrakcyjne
- 20. Sprawdź, czy system implementuje funkcję
- 21. Ogólna klasa rozszerzająca ORAZ implementuje interfejs
- 22. Mocking/stubbing obiekt klasy, która implementuje ArrayAccess w PHPUnit
- 23. Czy operacje zmiennoprzecinkowe w asocjacji C?
- 24. Dlaczego klasa LinkedHashMap implementuje interfejs mapy?
- 25. Czy istnieje standardowa klasa daty/czasu w C++?
- 26. Jak mock klasy, która implementuje wiele interfejsów
- 27. Operacje atomowe w C++
- 28. W jaki sposób program node.js implementuje nieblokujące operacje we/wy?
- 29. ReflectionException: Klasa nie istnieje
- 30. Dziedziczenie z jednej klasy bazowej, która implementuje INotifyPropertyChanged?
W nowoczesnym C++ nie używałbyś do tego klasy. Prawdopodobnie używałbyś wielu szablonów funkcji. Jeden szablon funkcji dla każdej operacji, którą chcesz obsłużyć, z faktycznymi zakresami wejściowymi templatycznymi. – MSalters
Programowanie funkcji nie jest opcją. Programowanie obiektowe jest dobre. Naprawdę potrzebuję klasy szablonu. –
@MSalters: Jaki jest "zakres wejściowy" dla funkcji, która wymaga dwóch permutacji, i zwraca iloczyn tych permutacji? Czy sugerujesz, że same permutacje najlepiej reprezentują klienta jako pary iteracyjne, a nie nieprzezroczyste? Myślę, że Alexey szuka czegoś o większej wiedzy na temat teorii grup niż std :: next_permutation. –