Αν δεν σας έχω πει ακόμα οτι δεν τα πάω καλά με τους αλγόριθμους, ε, δεν τα παω καλά με τους αλγόριθμους! Μου ετυχε όμως το εξής προβληματάκι στο οποίο θα ήθελα τη γνώμη σας.
Εχω μια σειρά από διαφορετικούς αριθμούς (γραμματα, αντικείμενα, οτιδήποτε - μην το "δέσετε" με strings όπως κάνουν συνήθως - hint: είτε αριθμούς θα έχω είτε αντικείμενα).
Π.χ.
Α. 121
Β. 57
Γ. 83
Θέλω όλους τους δυνατούς ΜΟΝΑΔΙΚΟΥΣ συνδυασμούς, ανεξαρτήτως θέσεως. Ητοι ο αλγόριθμος θα πρέπει να υπολογίζει permutations (ετσι δεν τα λενε; ) αλλά μοναδικά (δεν ξέρω πως τα λένε). Οι συνδυασμοί δεν είναι ανάγκη να είναι τριών θέσεων.
Στο παράδειγμα, θα έπρεπε να προκύπτουν τα εξής:
121
57
83
121, 57
121, 57, 83
121, 83
57, 83
(για να γινει πιο κατανοητο, "121,57,83" και "83,121,57" δεν αποτελούν διαφορετικούς συνδυασμούς)
In real life, αυτά θα είναι objects που θα έχουν ένα αριθμητικό property και θα πρέπει να συνδυαστούν κατά όλους τους δυνατούς τρόπους με τους ανωτέρω περιορισμούς.
Ζητούμενα:
1. Εχει όνομα ο αλγόριθμος που κάνει αυτό το πράγμα; (Combinatorial? Permutation? Αλλο?)
2. Υπάρχει αλγόριθμος που κάνει αυτό το πράγμα;
3. Μηηηηπως υπάρχει παράδειγμα σε VB.NET; (I'm pushing my luck, I know :) )
Μην κουραστείτε πολυ για αυτό. Αν κάποιος έχει δει ή ακούσει κάτι που να μπορεί να κάνει αυτό που περιγράφεται παραπάνω, ας μου δώσει λίγο feedback και θα επανέλθω με το full σκεπτικό (τα παραπάνω είναι μέρος της επίλυσης ενός μεγαλύτερου προβλήματος σύμφωνα με ένα σκεπτικό). Αν έχετε όρεξη, μου λετε και το αναλύω.
Υ.Γ. Ευτυχώς δηλαδή που έκανα και Συνδυαστική στο Πανεπιστήμιο...:) :) :)
Σωτήρης Φιλιππίδης
DotSee Web Services