JimasGR Δημοσ. 2 Μαρτίου 2017 Δημοσ. 2 Μαρτίου 2017 Καλησπερα παιδια πρεπει να κανω την παρακατω ασκηση η οποια συμπεριλαμβανει την χρηση συναρτησης για τον υπολογισμου του n! (παραγοντικου) και θα ηθελα μια μικρη βοηθεια αν ειναι ευκολο για το πως θα κανω την ασκηση. Εχω κανει σχεδον ολα τα υπολοιπα το μονο που μενει ειναι η εισαγωγη των εντολων της συναρτησης. Να προσθεσω οτι προηγουμενως ειχα κανει ασκηση για τον υπολογισμο του n! κατα προσεγγιση βαση του τυπου του Stirling (αν βοηθαει). Ευχαριστω πολυ.
Moderators Kercyn Δημοσ. 2 Μαρτίου 2017 Moderators Δημοσ. 2 Μαρτίου 2017 Δεν κατάλαβα πού κολλάς ακριβώς.
JimasGR Δημοσ. 2 Μαρτίου 2017 Μέλος Δημοσ. 2 Μαρτίου 2017 Δεν κατάλαβα πού κολλάς ακριβώς. θα ηθελα μια μικρη βοηθεια αν ειναι ευκολο για το πως θα κανω την ασκηση. Εχω κανει σχεδον ολα τα υπολοιπα το μονο που μενει ειναι η εισαγωγη των εντολων της συναρτησης
Moderators Kercyn Δημοσ. 2 Μαρτίου 2017 Moderators Δημοσ. 2 Μαρτίου 2017 Ναι ποιων "εντολών"; Πού θα μπει η scanf δηλαδή; Πώς θα υπολογίσεις την παράσταση; Τι;
JimasGR Δημοσ. 2 Μαρτίου 2017 Μέλος Δημοσ. 2 Μαρτίου 2017 Ναι ποιων "εντολών"; Πού θα μπει η scanf δηλαδή; Πώς θα υπολογίσεις την παράσταση; Τι; Τι εντολες θα γραψω ακριβως για την συναρτηση που ζητειται. Printf,scanf κλπ τα ξερω πιστευω
defacer Δημοσ. 2 Μαρτίου 2017 Δημοσ. 2 Μαρτίου 2017 Εχω κανει σχεδον ολα τα υπολοιπα το μονο που μενει ειναι η εισαγωγη των εντολων της συναρτησης Πως λέμε έχω κάνει όλα τα υπόλοιπα για το γεύμα, το μόνο που μένει είναι να μαγειρέψω το φαγητό. Δείξε μας αν θες τι έχεις κάνει, και την προηγούμενη του Stirling, για να έχουμε ένα σημείο εκκίνησης. 4
JimasGR Δημοσ. 2 Μαρτίου 2017 Μέλος Δημοσ. 2 Μαρτίου 2017 Πως λέμε έχω κάνει όλα τα υπόλοιπα για το γεύμα, το μόνο που μένει είναι να μαγειρέψω το φαγητό. Δείξε μας αν θες τι έχεις κάνει, και την προηγούμενη του Stirling, για να έχουμε ένα σημείο εκκίνησης. Η παρακατω φωτο βαση του τυπου του Stirling υπολογιζει κατα προσεγγιση το παραγοντικο ενος αριθμου που δινω εγω μεσω της scanf. Αυτα που εχω γραψει μεχρι στιγμης στην καινουργια ασκηση ειναι πανω κατω οσα περιλαμβανει και η φωτο
Moderators Kercyn Δημοσ. 2 Μαρτίου 2017 Moderators Δημοσ. 2 Μαρτίου 2017 In before ο imitheos έρθει και πει ότι αυτό που έχεις γράψει μπορεί να υπολογίσει το Fibonacci ή να κάνει κάτι άλλο εξωτικό. Αφού έχεις τρόπο να υπολογίσεις το παραγοντικό, πρέπει να βρεις ένα τρόπο να υπολογίζεις δυνάμεις και μετά χρησιμοποιώντας αυτά να υπολογίσεις την παράσταση που έχεις για κάποιο x. 1
k33theod Δημοσ. 3 Μαρτίου 2017 Δημοσ. 3 Μαρτίου 2017 Εγώ θα έλυνα το factorial πολύ πιο απλά αν δεν υπάρχει λόγος να ακολουθήσεις τη συγκεκριμένη μέθοδο n!=1 if n==1 n*(n-1)! if n>1 Επειδή το λύνω και εγώ έχω μερικές απορίες Όταν λέει ακρίβεια 10-5 ενοεεί δύο διαδοχικες τιμές της παράστασης να διαφαίρουν λιγότερο του 10-5; Όταν λέει επαναλήψεις τι έννοει να φτάνεις μέχρι το 12!; Αυτά τα δύο εάν είναι όπως τα καταλαβαίνω συγκρούονται. Εννοώ, για να πετύχω την ακρίβεια χρειάζομαι περισσότερες επαναλήψεις ή όχι; H scanf_s πως δουλεύει σε gcc; γιατί μου βγάζει συνέχεια λάθος. Χρειάζεται η scanf_s εφόσον σκανάρω μόνο έναν double;
albNik Δημοσ. 3 Μαρτίου 2017 Δημοσ. 3 Μαρτίου 2017 H ιδέα είναι να μην υπολογίζεις κάθε φορά δυνάμεις η παράγοντικα. for(i = ...) { sum += b / a; a *= i; b *= x; } 3
JimasGR Δημοσ. 3 Μαρτίου 2017 Μέλος Δημοσ. 3 Μαρτίου 2017 Εγώ θα έλυνα το factorial πολύ πιο απλά αν δεν υπάρχει λόγος να ακολουθήσεις τη συγκεκριμένη μέθοδο n!=1 if n==1 n*(n-1)! if n>1 Επειδή το λύνω και εγώ έχω μερικές απορίες Όταν λέει ακρίβεια 10-5 ενοεεί δύο διαδοχικες τιμές της παράστασης να διαφαίρουν λιγότερο του 10-5; Όταν λέει επαναλήψεις τι έννοει να φτάνεις μέχρι το 12!; Αυτά τα δύο εάν είναι όπως τα καταλαβαίνω συγκρούονται. Εννοώ, για να πετύχω την ακρίβεια χρειάζομαι περισσότερες επαναλήψεις ή όχι; H scanf_s πως δουλεύει σε gcc; γιατί μου βγάζει συνέχεια λάθος. Χρειάζεται η scanf_s εφόσον σκανάρω μόνο έναν double; δεν ξερω σιγουρα λογικα ο τυπος του stirling δεν ειναι απαραιτητος αν υπαρχει αλλος τροπος που συμφερει περισσοτερο. Περι ακριβειας λογικα εννοει αυτο που εγραψες. Οσο για τις 12 επαναληψεις εχω την εντυπωση οτι εννοει για μεγιστο n=12 καθως ο υπολογιστης δεν επεξεργαζεται παραπανω ή κατι παρομοιο. Εγω δουλευω σε Visual studio C++ '10 αν θες δοκιμασε scanf χωρις underscore s μηπως τρεξει αλλιως δεν ξερω τι παιζει :\
jimex Δημοσ. 3 Μαρτίου 2017 Δημοσ. 3 Μαρτίου 2017 δεν ξερω σιγουρα λογικα ο τυπος του stirling δεν ειναι απαραιτητος αν υπαρχει αλλος τροπος που συμφερει περισσοτερο. Περι ακριβειας λογικα εννοει αυτο που εγραψες. Οσο για τις 12 επαναληψεις εχω την εντυπωση οτι εννοει για μεγιστο n=12 καθως ο υπολογιστης δεν επεξεργαζεται παραπανω ή κατι παρομοιο. Εγω δουλευω σε Visual studio C++ '10 αν θες δοκιμασε scanf χωρις underscore s μηπως τρεξει αλλιως δεν ξερω τι παιζει :\ Πρώτον αυτό που έχεις είναι σειρά. Σκοπός της άσκησης είναι να δώσεις έναν αποδοτικό αλγόριθμο που να μπορεί να υπολογίσει τη σειρά αυτή με προσέγγιση τουλάχιστον 10^(-5). Φαντάζομαι το 12 είναι το μέχρι που να υπολογίσεις τη σειρά. Γιατί θεωρητικά στο χαρτί μια Maclaurin τη γράφεις με n να τείνει στο άπειρο. Από κει και πέρα όλα εξαρτώνται από το αν ο υπολογισμός του παραγοντικού πρέπει να έχει κόστος Ο(1) οπότε πρέπει να γίνει προσεγγιστικά ή ο τυπικός αναδρομικός αλγόριθμος αρκεί. Nothing more to say...
k33theod Δημοσ. 3 Μαρτίου 2017 Δημοσ. 3 Μαρτίου 2017 Έχω γράψει τον κώδικα με scanf που πιστεύω είναι σωστός Η ακρίβεια όμως και οι επαναλήψεις δεν κολάνε συγκεκριμένα για να πετύχω την επιθυμητή ακρίβεια για χ=3 θέλω 17 επαναλήψεις ενώ για χ=10 36 επαναλήψεις Enter the double number x : 3 e**x 20.08554, loops 17 , factorial of loops 355687428096000 //εδώ χρησιμοποιώ τον κώδικά μου exp(x) 20.08554 //εδώ την exp για επιβεβαίωση c:\MinGW\ctraining\c_modern\chapter6>proj13 Enter the double number x : 4 e**x 54.59815, loops 20 , factorial of loops 2432902008176640000 exp(x) 54.59815 c:\MinGW\ctraining\c_modern\chapter6>proj13 Enter the double number x : 5 e**x 148.41316, loops 22 , factorial of loops 1124000727777607680000 exp(x) 148.41316 c:\MinGW\ctraining\c_modern\chapter6>proj13 Enter the double number x : 10 e**x 22026.46579, loops 36 , factorial of loops 371993326789901177492420297158468206329856 exp(x) 22026.46579 Κάτι χάνω εγώ ή η άσκηση;
imitheos Δημοσ. 3 Μαρτίου 2017 Δημοσ. 3 Μαρτίου 2017 Όταν λέει ακρίβεια 10-5 ενοεεί δύο διαδοχικες τιμές της παράστασης να διαφαίρουν λιγότερο του 10-5; Όταν λέει επαναλήψεις τι έννοει να φτάνεις μέχρι το 12!; Αυτά τα δύο εάν είναι όπως τα καταλαβαίνω συγκρούονται. Εννοώ, για να πετύχω την ακρίβεια χρειάζομαι περισσότερες επαναλήψεις ή όχι; Η ακρίβεια όμως και οι επαναλήψεις δεν κολάνε συγκεκριμένα για να πετύχω την επιθυμητή ακρίβεια για χ=3 θέλω 17 επαναλήψεις ενώ για χ=10 36 επαναλήψεις Κάτι χάνω εγώ ή η άσκηση; Αν θυμάμαι καλά, το 12 και το 20 δεν είναι το μεγαλύτερο παραγοντικό που μπορείς να υπολογίσεις με 32bit και 64bit unsigned αντίστοιχα ? Αν δουλεύουν κάποιο devc++ σε 32bit windows μήπως για αυτό τους λέει το πολύ 12 για να δουλέψουν int και να μην τους μπλέκει με unsigned long long. Edit: Αυτό που είναι το όλο νόημα στην άσκηση κατ εμέ είναι αυτό που είπε ο albNik. Το 99% των φοιτητών θα πάνε για κάθε βήμα του βρόχου και θα τρέχουν την pow για το x και την συνάρτηση του παραγοντικού υπολογίζοντας 3000 φορές το ίδιο πράγμα. 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα