k33theod Δημοσ. 15 Νοεμβρίου 2016 Δημοσ. 15 Νοεμβρίου 2016 Προσπαθώ να λύσω το εξής πρόβλημα https://py.checkio.org/mission/unfair-dice/ Το περιγράφω λίγο γιατί είναι δυσνόητο Ο αντίπαλος έχει 1 ζάρι όχι με έξι έδρες αλλά με όσες θέλει και όχι με στανταρ τιμές σε κάθε έδρα αλλά ότι αυτός θέλει και εμείς θέλουμε να φτιάξουμε ένα ζάρι που να έχει περίσσοτερες πιθανότητες να κερδίσει με τους εξής περιορισμούς: πρέπει να έχει ίδιο αριθμό εδρών και το άθροισμα των τιμών να είναι το ίδιο πχ ο αντίπαλος έχει ένα ζάρι με τρείς έδρες με τιμές έστω 1,1,3 το δικό που πρέπει να έχει 3 έδρες και άθροισμα τιμών 1+1+3 εάν δηλαδή το δικό μου έχει τιμές 2,2,1 έχω περισσότερες πιθανότητες να κερδίσω Σκέφτηκα αρχικά πως αν έχω μεγαλύτερη τιμή σε πάνω από τις μισές έδρες νικάω αλλά δεν μου βγαίνει πάντα πχ στο 1,2,3,4,5,6 εάν εγώ έχω 2,3,4,5 οι τιμές που μου μένουν είναι με άθροισμα 7 και εάν βάλω 1,6 έχω το ίδιο ζάρι ενώ εάν βάλω άλλες τιμές 3 και 4 πχ νομίζω οι πιθανότητες είναι ίδιες. Αν μεγαλώσω τις μέγιστες τιμές του δηλάδη έχω 4,5,6,7 πρέπει στις άλλες πλευρές να βάλω 1,1 και είμαι πάλι στα ίδια. Έχω την εντύπωση πως αν οι τιμές είναι συνεχομένες δεν μπορείς να τον νικήσεις αλλά μόνο να έχεις 50/50 Καμία ιδέα; κάπου με τις πιθανότητες το χάνω
albNik Δημοσ. 15 Νοεμβρίου 2016 Δημοσ. 15 Νοεμβρίου 2016 Έχω την εντύπωση πως αν οι τιμές είναι συνεχομένες δεν μπορείς να τον νικήσεις αλλά μόνο να έχεις 50/50 Καμία ιδέα; κάπου με τις πιθανότητες το χάνω Το [3,3,3,1] νικάει το [1,2,3,4]
Sheogorath Δημοσ. 15 Νοεμβρίου 2016 Δημοσ. 15 Νοεμβρίου 2016 Προσπαθώ να λύσω το εξής πρόβλημα https://py.checkio.org/mission/unfair-dice/ Το περιγράφω λίγο γιατί είναι δυσνόητο Ο αντίπαλος έχει 1 ζάρι όχι με έξι έδρες αλλά με όσες θέλει και όχι με στανταρ τιμές σε κάθε έδρα αλλά ότι αυτός θέλει και εμείς θέλουμε να φτιάξουμε ένα ζάρι που να έχει περίσσοτερες πιθανότητες να κερδίσει με τους εξής περιορισμούς: πρέπει να έχει ίδιο αριθμό εδρών και το άθροισμα των τιμών να είναι το ίδιο πχ ο αντίπαλος έχει ένα ζάρι με τρείς έδρες με τιμές έστω 1,1,3 το δικό που πρέπει να έχει 3 έδρες και άθροισμα τιμών 1+1+3 εάν δηλαδή το δικό μου έχει τιμές 2,2,1 έχω περισσότερες πιθανότητες να κερδίσω Σκέφτηκα αρχικά πως αν έχω μεγαλύτερη τιμή σε πάνω από τις μισές έδρες νικάω αλλά δεν μου βγαίνει πάντα πχ στο 1,2,3,4,5,6 εάν εγώ έχω 2,3,4,5 οι τιμές που μου μένουν είναι με άθροισμα 7 και εάν βάλω 1,6 έχω το ίδιο ζάρι ενώ εάν βάλω άλλες τιμές 3 και 4 πχ νομίζω οι πιθανότητες είναι ίδιες. Αν μεγαλώσω τις μέγιστες τιμές του δηλάδη έχω 4,5,6,7 πρέπει στις άλλες πλευρές να βάλω 1,1 και είμαι πάλι στα ίδια. Έχω την εντύπωση πως αν οι τιμές είναι συνεχομένες δεν μπορείς να τον νικήσεις αλλά μόνο να έχεις 50/50 Καμία ιδέα; κάπου με τις πιθανότητες το χάνω Όπως το βλέπω και εγώ ναι, έτσι γίνεται. Για να κερδίζεις πρέπει να μοιράσεις τα παραπάνω ποντάκια για να είσαι τουλάχιστον (βασικά ακριβώς θέλει) +1 απο τις περισσότερες έδρες του, και να βάλεις πολύ μικρά νούμερα αναγκαστικά σε κάποιες έδρες (ιδανικό 1) για να έχεις ίσο άθροισμα συνολικά. Προφανώς με συνεχόμενα νούμερα καταλήγεις στο ίδιο ζάρι.
alou Δημοσ. 15 Νοεμβρίου 2016 Δημοσ. 15 Νοεμβρίου 2016 Δεν είναι οι συνεχόμενοι αλλά τα κενά (στην αρχή ή ενδιάμεσα) που θα σου δώσουν ευκαιρία για καλύτερες πιθανότητες, πχ δε σε νοιάζει αν είναι 3,4,5 γιατί με 5,5,2 κερδίζεις.
k33theod Δημοσ. 15 Νοεμβρίου 2016 Μέλος Δημοσ. 15 Νοεμβρίου 2016 Το [3,3,3,1] νικάει το [1,2,3,4] Έχεις δίκιο Επιπρόσθετα με μπερδεύουν κάποια στοιχεία που δίνει που λέει ας πούμε winning_die([3, 3, 3, 3, 6, 6]) == [4, 4, 4, 4, 4, 4] # Or [3, 3, 4, 4, 5, 5] ενώ εμένα η δεύτερη λύση μου φένεται ισοπαλία όπως και αυτό winning_die([2, 3, 4, 5, 6, 7]) == [1, 1, 3, 7, 7, 8] # This can be beat though. που άν αφαιρέσουμε τα κοινά στοιχεία μένουν 2,4,5,6 και 1,1,7,8 που μου φένεται πάλι ισσοπαλία Ίσως χάνω κάτι από την εκφώνηση ή δεν είναι σωστό το σκεπτικό μου για τις πιθανότητες
alou Δημοσ. 15 Νοεμβρίου 2016 Δημοσ. 15 Νοεμβρίου 2016 let decideWinner = (a, => { let awins = 0,bwins = 0; for(let i=0;i<a.length;i++) { for(let ii = 0;ii<b.length;ii++) { if(a[i] > b[ii]) { awins ++; } else if (a[i] < b[ii]) { bwins ++; } } } return {awins: awins, bwins:bwins}; } let c = [3, 3, 3, 3, 6, 6]; let d = [4, 4, 4, 4, 4, 4]; let e = [3, 3, 4, 4, 5, 5]; let f = [2, 3, 4, 5, 6, 7]; let g = [1, 1, 3, 7, 7, 8]; console.log(decideWinner(c,e));//{ awins: 12, bwins: 16 } console.log(decideWinner(c,d));//{ awins: 12, bwins: 24 } console.log(decideWinner(f,g));//{ awins: 16, bwins: 17 } 2
tsofras Δημοσ. 15 Νοεμβρίου 2016 Δημοσ. 15 Νοεμβρίου 2016 Δεν είναι γιατί αλλάζουν οι πιθανότητες let decideWinner = (a, => { let awins = 0,bwins = 0; for(let i=0;i<a.length;i++) { for(let ii = 0;ii<b.length;ii++) { if(a[i] > b[ii]) { awins ++; } else if (a[i] < b[ii]) { bwins ++; } } } return {awins: awins, bwins:bwins}; } let c = [3, 3, 3, 3, 6, 6]; let d = [4, 4, 4, 4, 4, 4]; let e = [3, 3, 4, 4, 5, 5]; let f = [2, 3, 4, 5, 6, 7]; let g = [1, 1, 3, 7, 7, 8]; console.log(decideWinner(c,e));//{ awins: 12, bwins: 16 } console.log(decideWinner(c,d));//{ awins: 12, bwins: 24 } console.log(decideWinner(f,g));//{ awins: 16, bwins: 17 } Αν δεν κάνω λάθος αυτός είναι ο αλγόριθμος για την σύκριση , ο TS θέλει τον αλγόριθμο για την κατασκευή του ζαριού που θα νικάει το πρώτο , σωστά? Ωραίο προβληματάκι πάντος
alou Δημοσ. 15 Νοεμβρίου 2016 Δημοσ. 15 Νοεμβρίου 2016 Ναι απλά και εγώ έπαιζα τώρα και ήθελα να δείξω (αν είναι σωστό το σκεπτικό μου) ότι δεν ισχύει ο προβληματισμός του για την εκφώνηση, σκέψεις μοιράζομαι 1
k33theod Δημοσ. 15 Νοεμβρίου 2016 Μέλος Δημοσ. 15 Νοεμβρίου 2016 let decideWinner = (a, => { let awins = 0,bwins = 0; for(let i=0;i<a.length;i++) { for(let ii = 0;ii<b.length;ii++) { if(a[i] > b[ii]) { awins ++; } else if (a[i] < b[ii]) { bwins ++; } } } return {awins: awins, bwins:bwins}; } let c = [3, 3, 3, 3, 6, 6]; let d = [4, 4, 4, 4, 4, 4]; let e = [3, 3, 4, 4, 5, 5]; let f = [2, 3, 4, 5, 6, 7]; let g = [1, 1, 3, 7, 7, 8]; console.log(decideWinner(c,e));//{ awins: 12, bwins: 16 } console.log(decideWinner(c,d));//{ awins: 12, bwins: 24 } console.log(decideWinner(f,g));//{ awins: 16, bwins: 17 } Αυτό πιστεύω ότι είναι ευχαριστώ Δεν θα το σκεφτόμουν ότι οι πιθανότητες βγαίνουν έτσι Τώρα που κατάλαβα πως βγαίνει ο νικητής θα κάνω τον αλγόριθμο να τον βρίσκω
tsofras Δημοσ. 15 Νοεμβρίου 2016 Δημοσ. 15 Νοεμβρίου 2016 Δεν ξέρω αν είναι σωστή λύση (είμαι σκράπας στα μαθηματικά η αλήθεια είναι) απλά επειδή μου άρεσε σαν πρόβλημα και το ψάχνω, μάλλον πρέπει να αναπτύξεις έναν τύπο για να βρείς τις πιθανότητες και να παίξεις με αυτό. Η λύση του alou κάνει σύγκριση στους αριθμούς που έχει κάθε πλευρά και αποφασίζει τον νικητή , δεν βλέπω να λαμβάνει υπόψιν την πιθανότητα που έχει κάθε αριθμός να βγεί Σωστά? Αυπνία θα μου προκαλέσεις ,άσε που ξαναβλέπω τύπους και καταλαβαίνω ότι έχω ξεχάσει τα πάντα
k33theod Δημοσ. 15 Νοεμβρίου 2016 Μέλος Δημοσ. 15 Νοεμβρίου 2016 Δεν ξέρω αν είναι σωστή λύση (είμαι σκράπας στα μαθηματικά η αλήθεια είναι) απλά επειδή μου άρεσε σαν πρόβλημα και το ψάχνω, μάλλον πρέπει να αναπτύξεις έναν τύπο για να βρείς τις πιθανότητες και να παίξεις με αυτό. Η λύση του alou κάνει σύγκριση στους αριθμούς που έχει κάθε πλευρά και αποφασίζει τον νικητή , δεν βλέπω να λαμβάνει υπόψιν την πιθανότητα που έχει κάθε αριθμός να βγεί Σωστά? Αυπνία θα μου προκαλέσεις ,άσε που ξαναβλέπω τύπους και καταλαβαίνω ότι έχω ξεχάσει τα πάντα Η λύση του alou πιστεύω είναι σωστή έτσι πρέπει να υπολογίζονται οι πιθανότητες. Το μόνο που μένει να παράγουμε τον αριθμός που νικάει (αν υπάρχει) αν όχι σήμερα αύριο πιστεύω θα το βρώ (ας μη λεω πολλά)
tsofras Δημοσ. 15 Νοεμβρίου 2016 Δημοσ. 15 Νοεμβρίου 2016 Στο link που έβαλες winning_die([3, 3, 3, 3, 6, 6]) == [4, 4, 4, 4, 4, 4] # Or [3, 3, 4, 4, 5, 5] Αυτό σημαίνει ότι θα έχουν το ίδιο αποτέλεσμα? Είναι ακριβώς το παράδειγμα του alou console.log(decideWinner(c,e));//{ awins: 12, bwins: 16 }
pmav99 Δημοσ. 15 Νοεμβρίου 2016 Δημοσ. 15 Νοεμβρίου 2016 πχ ο αντίπαλος έχει ένα ζάρι με τρείς έδρες Πως είναι δυνατόν κάτι τέτοιο;
tsofras Δημοσ. 15 Νοεμβρίου 2016 Δημοσ. 15 Νοεμβρίου 2016 https://www.google.gr/search?q=3-Sided+Dice&espv=2&biw=1920&bih=960&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjJ_dHExavQAhUJfhoKHaEUCrAQ_AUIBigB#imgrc=0imTZbxmsPdM3M%3A
παπι Δημοσ. 16 Νοεμβρίου 2016 Δημοσ. 16 Νοεμβρίου 2016 Προσπαθώ να λύσω το εξής πρόβλημα https://py.checkio.org/mission/unfair-dice/ Το περιγράφω λίγο γιατί είναι δυσνόητο Ο αντίπαλος έχει 1 ζάρι όχι με έξι έδρες αλλά με όσες θέλει και όχι με στανταρ τιμές σε κάθε έδρα αλλά ότι αυτός θέλει και εμείς θέλουμε να φτιάξουμε ένα ζάρι που να έχει περίσσοτερες πιθανότητες να κερδίσει με τους εξής περιορισμούς: πρέπει να έχει ίδιο αριθμό εδρών και το άθροισμα των τιμών να είναι το ίδιο πχ ο αντίπαλος έχει ένα ζάρι με τρείς έδρες με τιμές έστω 1,1,3 το δικό που πρέπει να έχει 3 έδρες και άθροισμα τιμών 1+1+3 εάν δηλαδή το δικό μου έχει τιμές 2,2,1 έχω περισσότερες πιθανότητες να κερδίσω Σκέφτηκα αρχικά πως αν έχω μεγαλύτερη τιμή σε πάνω από τις μισές έδρες νικάω αλλά δεν μου βγαίνει πάντα πχ στο 1,2,3,4,5,6 εάν εγώ έχω 2,3,4,5 οι τιμές που μου μένουν είναι με άθροισμα 7 και εάν βάλω 1,6 έχω το ίδιο ζάρι ενώ εάν βάλω άλλες τιμές 3 και 4 πχ νομίζω οι πιθανότητες είναι ίδιες. Αν μεγαλώσω τις μέγιστες τιμές του δηλάδη έχω 4,5,6,7 πρέπει στις άλλες πλευρές να βάλω 1,1 και είμαι πάλι στα ίδια. Έχω την εντύπωση πως αν οι τιμές είναι συνεχομένες δεν μπορείς να τον νικήσεις αλλά μόνο να έχεις 50/50 Καμία ιδέα; κάπου με τις πιθανότητες το χάνω Γιατι να εχεις μεγαλυτερες τιμες στις μισες εδρες; Ο σκοπος ειναι να εχεις μεγαλυτερη πιθανοτητα απο τον αντιπαλο. Αυτο που θες ειναι περισσοτερες εδρες νικης απο τον αντιπαλο. Για να το πετυχεις αυτο, θες μια εδρα που να χανει απο ολες τις εδρες του αντιπαλου. Πχ αν ο αντιπαλος εχει 1,2,3,4 και εσυ 1,2,3,4 Τοτε οι πιθανότητες ειναι 50-50 Εαν ομως εχεις 1,3,3,3 Τοτε εχεις 50% να κεδρισεις και 25% να χασεις.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα