Προς το περιεχόμενο

Μαθηματικό πρόβλημα


hdonoblepsias

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα.

Προσπαθώ να φτιάξω ένα προγραμματάκι σε Javascript που να βάζεις τον αριθμό των αξιολογήσεων ενός καταλύματος στο booking, την βαθμολογία εκείνη την στιγμή και να μου υπολογίζει, πόσες 10αρες αξιολογήσεις χρειάζονται, για ανέβει η βαθμολογία σε κάποιο ποσό που θέλω.

Μέχρι στιγμής έχω κάνει μόνο τις αξιολογήσεις * την βαθμολογία για να μου βγει το άρθροισμα των ψήφων. (νομίζω οτι έτσι είναι σωστά το πρώτο βήμα)

Δηλαδή έστω οτι έχω 650 ψήφους και παίρνω μια βαθμολογία 8,2. Βρίσκω οτι οι ψήφοι έχουν άρθροισμα 5.330.

Με τι τύπο μπορώ να υπολογίσω τον αριθμό των δεκάρων ψήφων που χρειάζομαι για να φτάσω το πχ 8,7 ? Πόσες θέλω για το 9.0 κ.ο.κ.

 

Επεξ/σία από hdonoblepsias
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Συνεχίζοντας της εξισωση του @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)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Σας ευχαριστώ παιδιά. Δουλεύει έτσι. Έφτιαξα το προγραμματάκι σε 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. Ακόμα καλύτερα αν μπορώ και μη στρογγυλοποιημένη.

Επεξ/σία από hdonoblepsias
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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 ακόμα? Όπως αλλάζουν οι ψήφοι αλλάζει και αυτό. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
1 ώρα πριν, kaliakman είπε

Γιατί δεν έχει αλλάξει το currating ακόμα? Όπως αλλάζουν οι ψήφοι αλλάζει και αυτό. 

γιατί δεν έχει τόσα δεκαδικά να φαίνεται η αλλαγή από λίγες ψήφους. Αν ήταν ας πούμε 8,884342 με 10 ψήφους, μπορεί να γινόταν πχ. 8,884360. Αλλά τώρα το 8,8 θα μείνει για πολύ καιρό σταθερό. 

Επεξ/σία από hdonoblepsias
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Τρέξε αυτό στην κονσόλα του 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);
}

 

Επεξ/σία από t(o.ot)
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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 δεκαδικά)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ένα είναι το σίγουρο: Αν έχεις μέσο όρο κάτω από 10, τότε με τίποτα δε μπορείς να φτάσεις το 10 στην πορεία...😁

Ενδιαφέρον, πού μπορεί να έχει εφαρμογή αυτό που γράφεις;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

3 λεπτά πριν, Lanike71 είπε

Ενδιαφέρον, πού μπορεί να έχει εφαρμογή αυτό που γράφεις;

στο να πουλάει ψήφους σε site, online shops κλπ , θα ναι μια ομάδα 10 ατόμων, με 20 accounts ο καθένας κ θα λένε τον Χ υποψήφιο

έχεις Μ.Ο. κριτική το 7,5, με 1000 ευρουλάκια σε πάω στο 8,5, με 1500 σε πάω στο 9 κλπ κλπ κλπ  

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

15 λεπτά πριν, Lanike71 είπε

Ένα είναι το σίγουρο: Αν έχεις μέσο όρο κάτω από 10, τότε με τίποτα δε μπορείς να φτάσεις το 10 στην πορεία...😁

Ενδιαφέρον, πού μπορεί να έχει εφαρμογή αυτό που γράφεις;

Πρακτικά έχεις δίκιο, αλλά στην πραγματικότητα κυνηγάει το 9.96 το οποίο δεν είναι αδύνατο. Με τις αρχικές τιμές του τελευταίου κώδικα που παρέθεσα, θέλει 'μόλις' 23200 δεκάρες ψήφους για να πιάσει το δεκάρι. Με την ομάδα που περιγράφει Kthulhou στο ποστ του, αν ο καθένας ρίχνει μια ψήφο κάθε 3 λεπτά, βγαίνει περίπου 8 ευρώ την ώρα ανά άτομο, και αυτό μέχρι να τους πάρει χαμπάρι το booking και να βγάλει τον πελάτη από τον κατάλογό του.

Καλύτερα να μοιράζουν φυλλάδια, πιο πολλά θα βγάλουν.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...