Δημιουργός: Γιώργος Καπετανόπουλος (19/8/2017)
Με το συνημμένο πρόγραμμα μπορούμε, από ένα σύνολο {A0, A1, …, An-1} n διαφορετικών στοιχείων, να δημιουργήσουμε, και να αποθηκεύσουμε σε πίνακα:
- Τους συνδυασμούς ανά r (0 < r <= n).
- Τους συνδυασμούς ανά r (r > 0), με επανάληψη.
- Τις μεταθέσεις.
- Τις διατάξεις ανά r (0 < r <= n).
- Τις διατάξεις ανά r (r > 0) με επανάληψη.
- Τα υποσύνολα (δυναμοσύνολο).
Ειδικά, για τα υποσύνολα, στον πίνακα tblSubSets, εκτός από τα υποσύνολα, αποθηκεύεται και το πλήθος των στοιχείων τους.
Έτσι δίνεται η δυνατότητα κατάλληλης ταξινόμησης (ή και φιλτραρίσματος) στο ερώτημα qrySubSets.
Η περίπτωση εύρεσης των μεταθέσεων σε σύνολο με μη διαφορετικά στοιχεία δεν καλύπτεται.
Αν και έψαξα στο Internet, δε βρήκα, κάποιο αλγόριθμο.
Για περιορισμένο αριθμό στοιχείων (n<11) θα μπορούσε να εφαρμοστεί η παρακάτω λύση.
Αν έχουμε 3 στοιχεία τύπου Α, 2 τύπου Β και 4 τύπου Γ, συμπληρώνουμε στο σχετικό πεδίο της καρτέλας μεταθέσεων τη συμβολοσειρά Α|Α|Α|Β|Β|Γ|Γ|Γ|Γ και πατούμε το κουμπί.
Θα υπολογιστούν οι μεταθέσεις σαν να είχαμε 9 (3+2+4), διαφορετικά στοιχεία και θα αποθηκευτούν στον πίνακα tblPermutations.
Με το συγκεντρωτικό ερώτημα qryPermutations λαμβάνουμε μόνο τις διαφορετικές.
Σχόλια και προτάσεις για διορθώσεις και βελτιώσεις είναι πάντα ευπρόσδεκτα.