Τυχαίοι αριθμοί χωρίς επαναλήψεις

Διατύπωση του προβλήματος

Ας υποθέσουμε ότι πρέπει να δημιουργήσουμε ένα σύνολο ακέραιων τυχαίων αριθμών χωρίς επαναλήψεις σε ένα δεδομένο εύρος τιμών. Παραδείγματα εν κινήσει:

  • δημιουργία μοναδικών τυχαίων κωδικών για προϊόντα ή χρήστες
  • ανάθεση ατόμων σε εργασίες (το καθένα τυχαία από τη λίστα)
  • μετάθεση λέξεων στο ερώτημα αναζήτησης (γεια σου seo-shnikam)
  • παίζοντας λότο κλπ.

Μέθοδος 1. Απλή

Αρχικά, ας εξετάσουμε μια απλή επιλογή: πρέπει να πάρουμε ένα τυχαίο σύνολο 10 ακεραίων από το 1 έως το 10. Χρησιμοποιώντας τη συνάρτηση που είναι ενσωματωμένη στο Excel ΜΕΤΑΞΥ ΤΗΣ ΠΕΡΙΠΤΩΣΗΣ (ΑΚΡΗ ΜΕΣΑ) η μοναδικότητα δεν είναι εγγυημένη. Εάν το εισαγάγετε σε ένα κελί φύλλου και το αντιγράψετε κατά 10 κελιά, τότε μπορούν εύκολα να συμβούν επαναλήψεις:

Τυχαίοι αριθμοί χωρίς επαναλήψεις

Ως εκ τούτου, θα πάμε αντίστροφα.

Όλες οι εκδόσεις του Excel έχουν μια λειτουργία ΤΑΞΗ (RANG), που προορίζεται για την κατάταξη ή, με άλλα λόγια, τον προσδιορισμό της κορυφαίας θέσης ενός αριθμού σε ένα σύνολο. Ο μεγαλύτερος αριθμός στη λίστα έχει κατάταξη=1, ο δεύτερος στην κορυφή έχει κατάταξη=2 και ούτω καθεξής.

Ας εισάγουμε τη συνάρτηση στο κελί Α2 ΣΛΧΗΣ (ΑΚΡΑ) χωρίς ορίσματα και αντιγράψτε τον τύπο σε 10 κελιά. Αυτή η συνάρτηση θα μας δημιουργήσει ένα σύνολο 10 τυχαίων κλασματικών αριθμών από το 0 έως το 1:

Τυχαίοι αριθμοί χωρίς επαναλήψεις

Στην επόμενη στήλη εισάγουμε τη συνάρτηση ΤΑΞΗγια να καθορίσετε τη θέση στην κατάταξη για κάθε λαμβανόμενο τυχαίο αριθμό:

Τυχαίοι αριθμοί χωρίς επαναλήψεις

Παίρνουμε στη στήλη Β αυτό που θέλαμε - οποιονδήποτε επιθυμητό αριθμό μη επαναλαμβανόμενων τυχαίων ακεραίων από το 1 έως το 10.

Καθαρά θεωρητικά, μια κατάσταση μπορεί να προκύψει όταν ΣΛΧΗΣ θα μας δώσει δύο πανομοιότυπους τυχαίους αριθμούς στη στήλη Α, οι τάξεις τους θα ταιριάζουν και θα έχουμε επανάληψη στη στήλη Β. Ωστόσο, η πιθανότητα ενός τέτοιου σεναρίου είναι εξαιρετικά μικρή, δεδομένου ότι η ακρίβεια είναι 15 δεκαδικά ψηφία.

Μέθοδος 2. Πολύπλοκη

Αυτή η μέθοδος είναι ελαφρώς πιο περίπλοκη, αλλά χρησιμοποιεί μόνο έναν τύπο πίνακα. Ας υποθέσουμε ότι πρέπει να δημιουργήσουμε μια λίστα με 9 μη επαναλαμβανόμενους τυχαίους ακέραιους αριθμούς στην περιοχή από 1 έως 50 σε ένα φύλλο.

Εισαγάγετε τον ακόλουθο τύπο στο κελί A2, κάντε κλικ στο τέλος Ctrl + Shift + Εισαγωγή (για να τον εισαγάγετε ως τύπο πίνακα!) και αντιγράψτε τον τύπο στον επιθυμητό αριθμό κελιών:

Τυχαίοι αριθμοί χωρίς επαναλήψεις

Μέθοδος 3. Μακροεντολή

Και, φυσικά, μπορείτε να λύσετε το πρόβλημα χρησιμοποιώντας προγραμματισμό στη Visual Basic. Σε ένα από τα παλιά άρθρα σχετικά με την τυχαία δειγματοληψία, ανέφερα ήδη τη συνάρτηση μακροεντολής του πίνακα Lotto, η οποία παράγει τον απαιτούμενο αριθμό τυχαίων μη επαναλαμβανόμενων αριθμών από ένα δεδομένο διάστημα.

  • Πώς να μετρήσετε τον αριθμό των μοναδικών τιμών σε ένα εύρος
  • Τυχαία επιλογή στοιχείων από μια λίστα

Αφήστε μια απάντηση