satafaka Δημοσ. 12 Αυγούστου 2015 Δημοσ. 12 Αυγούστου 2015 Καλησπέρα σε όλους. Θα το πω με ένα παράδειγμα για να γίνω κατανοητός. Έστω ότι είμαστε 25 άτομα. Το κάθε άτομο έχει έναν αριθμό, κάποιοι μικρότερο κάποιοι μεγαλύτερο κτλπ. πχ array (size=25) 0 => float 01 => float 1748092 => float 3496173 => float 5244264 => float 6992355 => float 8339416 => float 8740437 => float 9031788 => float 9203979 => float 99545310 => float 104885211 => float 107798712 => float 118355813 => float 122366114 => float 125279615 => float 127001416 => float 128193017 => float 129297218 => float 132399619 => float 134507120 => float 142760421 => float 145673922 => float 146616323 => float 147395824 => float 2884343 Θέλω να φτιάξω κάτι σαν ρουλλέτα. Δηλαδή να παίρνω έναν random αριθμό (από κάπου και κάπως) και να διαλέγω κάποιο από αυτά τα άτομα αναλόγως του τυχαίου αριθμού. Αυτός που έχει μεγαλύτερο βαθμό, πρέπει να έχει περισσότερες πιθανότητες να επιλεχθεί, από ότι οι υπόλοιποι με μικρότερο αριθμό. Σαν να τους έβαζες σε μια ρουλλέτα δηλαδή, αλλά όσο μεγαλύτερος ο αριθμός που έχει το άτομο, τόσα περισσότερα "κουτάκια" στην ρουλλέτα έχει, οπότε έχει και περισσότερες πιθανότητες να τον διαλέξεις. Η ρουλλέτα θα γυρίσει 25 φορές και λογικό είναι να επιλεχθεί 2 κ 3 κ 4 ή και περισσότερες φορές, αυτός που έχει μεγαλύτερο βαθμό, δεν μας πειράζει δηλαδή να ξανα επιλεχθεί. Έχετε καμιά ιδέα? Σε php γλώσσα. Ευχαριστώ.
Shadow Vortex Δημοσ. 12 Αυγούστου 2015 Δημοσ. 12 Αυγούστου 2015 Είναι πρόβλημα rejection sampling και ουσιαστικά κοιτάς το να βάλεις κάπου τα βάρη συσχετίζοντας τα μαι τους παίχτες και μετά να τα χρησιμοποιήσεις δίνοντας προτεραιότητα στους κοντινότερους παίχτες με το μεγαλύτερο βάρος, αλλά πρέπει να σκεφτείς μερικές περίπτωσης που δεν αναφέρεις, σαν άμα είναι δυνατόν η ρουλέτα να μην βρει κανέναν. (Τότε πότε είναι το αποτέλεσμα μακριά αρκετά από κάθε αριθμώ ΚΑΙ βάρος) Επίσης υπάρχει όριο στα βάρη; Μπορεί κάποιος να έχει 120% περίπτωσης να βγει και ο άλλος 200%; Ή υπαρχή ένα όριο μεταξύ 0 και 100;
satafaka Δημοσ. 13 Αυγούστου 2015 Μέλος Δημοσ. 13 Αυγούστου 2015 Είναι πρόβλημα rejection sampling και ουσιαστικά κοιτάς το να βάλεις κάπου τα βάρη συσχετίζοντας τα μαι τους παίχτες και μετά να τα χρησιμοποιήσεις δίνοντας προτεραιότητα στους κοντινότερους παίχτες με το μεγαλύτερο βάρος, αλλά πρέπει να σκεφτείς μερικές περίπτωσης που δεν αναφέρεις, σαν άμα είναι δυνατόν η ρουλέτα να μην βρει κανέναν. (Τότε πότε είναι το αποτέλεσμα μακριά αρκετά από κάθε αριθμώ ΚΑΙ βάρος) Επίσης υπάρχει όριο στα βάρη; Μπορεί κάποιος να έχει 120% περίπτωσης να βγει και ο άλλος 200%; Ή υπαρχή ένα όριο μεταξύ 0 και 100; Έκανα μια σκέψη για να λύσω αυτό το πρόβλημα που και εσύ αναφέρεις και είναι η εξής. Αν ας πούμε υπάρχουν 3 άτομα αντί για 25 που είπα επάνω. Ο 1ος έχει αριθμό 5, ο 2ος 25 και ο 3ος 40. Αν φτιάξω πεδίο τιμών για τον καθέναν με περισσότερα κουτιά στον 3ο? Δηλαδή τα πεδία θα είναι 3. 0-4 -> 5 "κουτιά" 5-29 -> 25 κουτιά 30-69 -> 40 κουτιά. Και ψάξω έναν τυχαίο από το 0 έως το 69. Σίγουρα θα πετύχω κάποιον και με περισσότερες πιθανότητες αυτόν με τα 40 κουτιά. Σωστό δεν είναι? 1
albNik Δημοσ. 13 Αυγούστου 2015 Δημοσ. 13 Αυγούστου 2015 Αν εχεις π.χ 5 νουμερα 1 => 10 2 => 20 3 => 35 4 => 50 5 => 70 ειναι 10+20+35+50+70=185 Παίρνεις ενα random απο 0 μεχρι 185 αν ερθει [0--10] επιλέγεις το 1 [10--30] επιλέγεις το 2 [30--65] επιλέγεις το 3 [65--115] επιλέγεις το 4 [115--185] επιλέγεις το 5 Οι πιθανότητες ειναι αναλογικές των τιμων τους 1
satafaka Δημοσ. 13 Αυγούστου 2015 Μέλος Δημοσ. 13 Αυγούστου 2015 albNik είπαμε το ίδιο πράμα την ίδια ώρα Έχω μια απορία όμως. Πρέπει οι αριθμοί αυτοί να είναι sorted από τον μικρότερο στον μεγαλύτερο ή μπορώ να τους έχω και διάσπαρτους? Βγαίνει το ίδιο αποτέλεσματα ή όχι? Νομίζω όχι αλλά δεν είμαι και σίγουρος με την θολούρα που έχω...
albNik Δημοσ. 13 Αυγούστου 2015 Δημοσ. 13 Αυγούστου 2015 albNik είπαμε το ίδιο πράμα την ίδια ώρα Έχω μια απορία όμως. Πρέπει οι αριθμοί αυτοί να είναι sorted από τον μικρότερο στον μεγαλύτερο ή μπορώ να τους έχω και διάσπαρτους? Βγαίνει το ίδιο αποτέλεσματα ή όχι? Νομίζω όχι αλλά δεν είμαι και σίγουρος με την θολούρα που έχω... Δεν χρειαζεται , σημασια εχει στον καθενα να δινεις διαστημα (απο εως) ίσο με την τιμή του.
satafaka Δημοσ. 13 Αυγούστου 2015 Μέλος Δημοσ. 13 Αυγούστου 2015 Ok σας ευχαριστώ πολύ, θα το προσπαθήσω έτσι. Βέβαια τα έκανα sort πρώτα, δεν ξέρω γιατί αλλά δεν θα είναι πρόβλημα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα