hdonoblepsias Δημοσ. 23 Ιουλίου 2021 Δημοσ. 23 Ιουλίου 2021 (επεξεργασμένο) Καλησπέρα. Προσπαθώ να φτιάξω ένα προγραμματάκι σε Javascript που να βάζεις τον αριθμό των αξιολογήσεων ενός καταλύματος στο booking, την βαθμολογία εκείνη την στιγμή και να μου υπολογίζει, πόσες 10αρες αξιολογήσεις χρειάζονται, για ανέβει η βαθμολογία σε κάποιο ποσό που θέλω. Μέχρι στιγμής έχω κάνει μόνο τις αξιολογήσεις * την βαθμολογία για να μου βγει το άρθροισμα των ψήφων. (νομίζω οτι έτσι είναι σωστά το πρώτο βήμα) Δηλαδή έστω οτι έχω 650 ψήφους και παίρνω μια βαθμολογία 8,2. Βρίσκω οτι οι ψήφοι έχουν άρθροισμα 5.330. Με τι τύπο μπορώ να υπολογίσω τον αριθμό των δεκάρων ψήφων που χρειάζομαι για να φτάσω το πχ 8,7 ? Πόσες θέλω για το 9.0 κ.ο.κ. Επεξ/σία 23 Ιουλίου 2021 από hdonoblepsias
albNik Δημοσ. 23 Ιουλίου 2021 Δημοσ. 23 Ιουλίου 2021 Ευκολο ειναι, θα στρογγυλοποιήσεις το x σε ακεραιο. (5330+10x)/(650+x)=8.7 1
archer100 Δημοσ. 23 Ιουλίου 2021 Δημοσ. 23 Ιουλίου 2021 Συνεχίζοντας της εξισωση του @albNik καταλήγουμε στο: x = (8.7 * 650 - 5330) / (10 - 8.7) όπου: 8.7 = target (στοχος) 650 = curvotes (τωρινοι ψηφοι) 5330 = curvotes * currating (τωρινοι ψηφοι επι τωρινη βαθμολογια) Επομένως αν θες να το μετατρεψεις σε μια γενικη συναρτηση θα εχεις: input: curvotes (650) currating (8.2) target (8.7) Αποτελεσμα: x = (target * curvotes - curvotes * currating) / (10 - target) Σε Python αυτο μπορει να γινει με την εξης συναρτηση: def votes_needed(target, curvotes, currating): return (target * curvotes - curvotes * currating) / (10 - target)
hdonoblepsias Δημοσ. 23 Ιουλίου 2021 Μέλος Δημοσ. 23 Ιουλίου 2021 (επεξεργασμένο) Σας ευχαριστώ παιδιά. Δουλεύει έτσι. Έφτιαξα το προγραμματάκι σε Javascript. Μόνο 2 πραγματάκια ακόμα.... α) Δοκίμασα με νούμερα για τεστ, κοντα σε αυτό που θέλω, target = 9 currating = 8.8 curvotes = 800, άρα σύνολο 7040 πόντοι άρα με τον τύπο μου βγάζει οτι χρειάζομαι ακόμα 160 10ρες ψήφους. Αν υποθέσουμε, ψηφίζουν 10 άτομα ακόμα, τότε τα δεδομένα είναι: currating = 8.8 (αφού δεν έχει αλλάξει ακόμα) curvotes = 810, άρα σύνολο 7128 πόντοι και μου βγάζει οτι πρέπει να ψηφίσουν ακόμα 162 άτομα (αντί για 150) Μπορείτε να φανταστείτε γιατί συμβαίνει αυτό? Έχω κάνει εγώ κάτι λάθος ή απλά επειδή είναι πολύ στρογγυλοποιημένο το currating του booking και δεν είναι του στυλ 8.85674? β) Υπάρχει τροπος να "πάρω" αυτόματα το current rating και το curvotes από μια συγκεκριμένη καταχώριση στο booking. Ακόμα καλύτερα αν μπορώ και μη στρογγυλοποιημένη. Επεξ/σία 23 Ιουλίου 2021 από hdonoblepsias
kaliakman Δημοσ. 23 Ιουλίου 2021 Δημοσ. 23 Ιουλίου 2021 12 λεπτά πριν, hdonoblepsias είπε Σας ευχαριστώ παιδιά. Δουλεύει έτσι. Μόνο 2 πραγματάκια ακόμα.... α) Δοκίμασα με νούμερα για τεστ, κοντα σε αυτό που θέλω, target = 9 currating = 8.8 curvotes = 800, άρα σύνολο 7040 πόντοι άρα με τον τύπο μου βγάζει οτι χρειάζομαι ακόμα 160 10ρες ψήφους. Αν υποθέσουμε, ψηφίζουν 10 άτομα ακόμα, τότε τα δεδομένα είναι: currating = 8.8 (αφού δεν έχει αλλάξει ακόμα) curvotes = 810, άρα σύνολο 7128 πόντοι και μου βγάζει οτι πρέπει να ψηφίσουν ακόμα 162 άτομα (αντί για 150) Μπορείτε να φανταστείτε γιατί συμβαίνει αυτό? Έχω κάνει εγώ κάτι λάθος ή απλά επειδή είναι πολύ στρογγυλοποιημένο το currating του booking και δεν είναι του στυλ 8.85674? β) Υπάρχει τροπος να "πάρω" αυτόματα το current rating και το curvotes από μια συγκεκριμένη καταχώριση στο booking. Ακόμα καλύτερα αν μπορώ και μη στρογγυλοποιημένη. Γιατί δεν έχει αλλάξει το currating ακόμα? Όπως αλλάζουν οι ψήφοι αλλάζει και αυτό.
hdonoblepsias Δημοσ. 23 Ιουλίου 2021 Μέλος Δημοσ. 23 Ιουλίου 2021 (επεξεργασμένο) 1 ώρα πριν, kaliakman είπε Γιατί δεν έχει αλλάξει το currating ακόμα? Όπως αλλάζουν οι ψήφοι αλλάζει και αυτό. γιατί δεν έχει τόσα δεκαδικά να φαίνεται η αλλαγή από λίγες ψήφους. Αν ήταν ας πούμε 8,884342 με 10 ψήφους, μπορεί να γινόταν πχ. 8,884360. Αλλά τώρα το 8,8 θα μείνει για πολύ καιρό σταθερό. Επεξ/σία 23 Ιουλίου 2021 από hdonoblepsias
t(o.ot) Δημοσ. 23 Ιουλίου 2021 Δημοσ. 23 Ιουλίου 2021 (επεξεργασμένο) Τρέξε αυτό στην κονσόλα του browser σου και θα πάρεις την απάντηση: let index = 1; let avg = 8.8; let count = 800; function addVote(vote) { const newCount = count + 1; avg = ((count * avg) + vote) / (newCount); console.log(`${index}: ${newCount} votes -> ${avg}`); count += 1; index += 1; } while (avg < 9) { addVote(10); } Επεξ/σία 23 Ιουλίου 2021 από t(o.ot)
hdonoblepsias Δημοσ. 23 Ιουλίου 2021 Μέλος Δημοσ. 23 Ιουλίου 2021 1 ώρα πριν, t(o.ot) είπε Τρέξε αυτό στην κονσόλα του browser σου και θα πάρεις την απάντηση: let index = 1; let avg = 8.8; let count = 800; function addVote(vote) { const newCount = count + 1; avg = ((count * avg) + vote) / (newCount); console.log(`${index}: ${newCount} votes -> ${avg}`); count += 1; index += 1; } while (avg < 9) { addVote(10); } Το ίδιο βγαίνει σαν απότελεσμα. 160 ψήφοι μέχρι το 9. Τελικά το μοναδικό πρόβλημα είναι η στρογγυλοποίηση του booking. Δεν ξέρω αν μπορώ από κάπου να πάρω το ακριβές ποσοστο με λεπτομέρια (6-7 δεκαδικά)
t(o.ot) Δημοσ. 23 Ιουλίου 2021 Δημοσ. 23 Ιουλίου 2021 (επεξεργασμένο) Δεν μπορείς. Το booking γυρνάει τη βαθμολογία ήδη στρογγυλεμένη στο front-end σαν μέρος της HTML: Επεξ/σία 23 Ιουλίου 2021 από t(o.ot)
DrKo Δημοσ. 23 Ιουλίου 2021 Δημοσ. 23 Ιουλίου 2021 Αυτό ίσως σε βοηθήσει. Είναι απλές εξισώσεις και το πρόβλημα που έχεις απαντάται συχνά. https://math.stackexchange.com/questions/106700/incremental-averageing
Lanike71 Δημοσ. 25 Ιουλίου 2021 Δημοσ. 25 Ιουλίου 2021 Ένα είναι το σίγουρο: Αν έχεις μέσο όρο κάτω από 10, τότε με τίποτα δε μπορείς να φτάσεις το 10 στην πορεία...😁 Ενδιαφέρον, πού μπορεί να έχει εφαρμογή αυτό που γράφεις;
Kthulhou Δημοσ. 25 Ιουλίου 2021 Δημοσ. 25 Ιουλίου 2021 3 λεπτά πριν, Lanike71 είπε Ενδιαφέρον, πού μπορεί να έχει εφαρμογή αυτό που γράφεις; στο να πουλάει ψήφους σε site, online shops κλπ , θα ναι μια ομάδα 10 ατόμων, με 20 accounts ο καθένας κ θα λένε τον Χ υποψήφιο έχεις Μ.Ο. κριτική το 7,5, με 1000 ευρουλάκια σε πάω στο 8,5, με 1500 σε πάω στο 9 κλπ κλπ κλπ
t(o.ot) Δημοσ. 25 Ιουλίου 2021 Δημοσ. 25 Ιουλίου 2021 15 λεπτά πριν, Lanike71 είπε Ένα είναι το σίγουρο: Αν έχεις μέσο όρο κάτω από 10, τότε με τίποτα δε μπορείς να φτάσεις το 10 στην πορεία...😁 Ενδιαφέρον, πού μπορεί να έχει εφαρμογή αυτό που γράφεις; Πρακτικά έχεις δίκιο, αλλά στην πραγματικότητα κυνηγάει το 9.96 το οποίο δεν είναι αδύνατο. Με τις αρχικές τιμές του τελευταίου κώδικα που παρέθεσα, θέλει 'μόλις' 23200 δεκάρες ψήφους για να πιάσει το δεκάρι. Με την ομάδα που περιγράφει Kthulhou στο ποστ του, αν ο καθένας ρίχνει μια ψήφο κάθε 3 λεπτά, βγαίνει περίπου 8 ευρώ την ώρα ανά άτομο, και αυτό μέχρι να τους πάρει χαμπάρι το booking και να βγάλει τον πελάτη από τον κατάλογό του. Καλύτερα να μοιράζουν φυλλάδια, πιο πολλά θα βγάλουν.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα