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

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

Δημοσ.

Καλησπερα παιδια πρεπει να κανω την παρακατω ασκηση η οποια συμπεριλαμβανει την χρηση συναρτησης για τον υπολογισμου του n! (παραγοντικου) και θα ηθελα μια μικρη βοηθεια αν ειναι ευκολο για το πως θα κανω την ασκηση. Εχω κανει σχεδον ολα τα υπολοιπα το μονο που μενει ειναι η εισαγωγη των εντολων της συναρτησης. Να προσθεσω οτι προηγουμενως ειχα κανει ασκηση για τον υπολογισμο του n! κατα προσεγγιση βαση του τυπου του Stirling (αν βοηθαει).

Ευχαριστω πολυ.

post-302536-0-90475900-1488475511_thumb.png

Δημοσ.

Δεν κατάλαβα πού κολλάς ακριβώς.

θα ηθελα μια μικρη βοηθεια αν ειναι ευκολο για το πως θα κανω την ασκηση. Εχω κανει σχεδον ολα τα υπολοιπα το μονο που μενει ειναι η εισαγωγη των εντολων της συναρτησης :)

  • Moderators
Δημοσ.

Ναι ποιων "εντολών"; Πού θα μπει η scanf δηλαδή; Πώς θα υπολογίσεις την παράσταση; Τι;

Δημοσ.

Ναι ποιων "εντολών"; Πού θα μπει η scanf δηλαδή; Πώς θα υπολογίσεις την παράσταση; Τι;

Τι εντολες θα γραψω ακριβως για την συναρτηση που ζητειται. Printf,scanf κλπ τα ξερω πιστευω

Δημοσ.

Εχω κανει σχεδον ολα τα υπολοιπα το μονο που μενει ειναι η εισαγωγη των εντολων της συναρτησης :)

 

Πως λέμε έχω κάνει όλα τα υπόλοιπα για το γεύμα, το μόνο που μένει είναι να μαγειρέψω το φαγητό.  :)

 

Δείξε μας αν θες τι έχεις κάνει, και την προηγούμενη του Stirling, για να έχουμε ένα σημείο εκκίνησης.

  • Like 4
Δημοσ.

Πως λέμε έχω κάνει όλα τα υπόλοιπα για το γεύμα, το μόνο που μένει είναι να μαγειρέψω το φαγητό.  :)

 

Δείξε μας αν θες τι έχεις κάνει, και την προηγούμενη του Stirling, για να έχουμε ένα σημείο εκκίνησης.

Η παρακατω φωτο βαση του τυπου του Stirling υπολογιζει κατα προσεγγιση το παραγοντικο ενος αριθμου που δινω εγω μεσω της scanf. Αυτα που εχω γραψει μεχρι στιγμης στην καινουργια ασκηση ειναι πανω κατω οσα περιλαμβανει και η φωτο

post-302536-0-52910600-1488484918_thumb.png

  • Moderators
Δημοσ.

 

In before ο imitheos έρθει και πει ότι αυτό που έχεις γράψει μπορεί να υπολογίσει το Fibonacci ή να κάνει κάτι άλλο εξωτικό.

 

 

Αφού έχεις τρόπο να υπολογίσεις το παραγοντικό, πρέπει να βρεις ένα τρόπο να υπολογίζεις δυνάμεις και μετά χρησιμοποιώντας αυτά να υπολογίσεις την παράσταση που έχεις για κάποιο x.

  • Like 1
Δημοσ.

Εγώ θα έλυνα το factorial πολύ πιο απλά αν δεν υπάρχει λόγος να ακολουθήσεις τη συγκεκριμένη μέθοδο

n!=1 if n==1

   n*(n-1)! if n>1

 

Επειδή το λύνω και εγώ έχω μερικές απορίες  

Όταν λέει ακρίβεια 10-5  ενοεεί δύο διαδοχικες τιμές της παράστασης να διαφαίρουν λιγότερο του  10-5;

Όταν λέει επαναλήψεις τι έννοει να φτάνεις μέχρι το 12!;

Αυτά τα δύο εάν είναι όπως τα καταλαβαίνω συγκρούονται. Εννοώ, για να πετύχω την ακρίβεια χρειάζομαι περισσότερες επαναλήψεις ή όχι;

H scanf_s πως δουλεύει σε gcc; γιατί μου βγάζει συνέχεια λάθος.

Χρειάζεται η scanf_s εφόσον σκανάρω μόνο έναν double;

Δημοσ.

Εγώ θα έλυνα το 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 μηπως τρεξει αλλιως δεν ξερω τι παιζει :\

Δημοσ.

δεν ξερω σιγουρα λογικα ο τυπος του stirling δεν ειναι απαραιτητος αν υπαρχει αλλος τροπος που συμφερει περισσοτερο. Περι ακριβειας λογικα εννοει αυτο που εγραψες. Οσο για τις 12 επαναληψεις εχω την εντυπωση οτι εννοει για μεγιστο n=12 καθως ο υπολογιστης δεν επεξεργαζεται παραπανω ή κατι παρομοιο. Εγω δουλευω σε Visual studio C++ '10 αν θες δοκιμασε scanf χωρις underscore s μηπως τρεξει αλλιως δεν ξερω τι παιζει :\

 

Πρώτον αυτό που έχεις είναι σειρά. Σκοπός της άσκησης είναι να δώσεις έναν αποδοτικό αλγόριθμο που να μπορεί να υπολογίσει τη σειρά αυτή με προσέγγιση τουλάχιστον 10^(-5).

 

Φαντάζομαι το 12 είναι το μέχρι που να υπολογίσεις τη σειρά. Γιατί θεωρητικά στο χαρτί μια Maclaurin τη γράφεις με n να τείνει στο άπειρο.

 

Από κει και πέρα όλα εξαρτώνται από το αν ο υπολογισμός του παραγοντικού πρέπει να έχει κόστος Ο(1) οπότε πρέπει να γίνει προσεγγιστικά ή ο τυπικός αναδρομικός αλγόριθμος αρκεί.

 

Nothing more to say...

Δημοσ.

Έχω γράψει τον κώδικα με scanf που πιστεύω είναι σωστός  :mellow:

 

Η ακρίβεια  όμως και οι επαναλήψεις δεν κολάνε 

συγκεκριμένα για να πετύχω την επιθυμητή ακρίβεια για χ=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
 
Κάτι χάνω εγώ ή η άσκηση;
Δημοσ.

Όταν λέει ακρίβεια 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 φορές το ίδιο πράγμα.

  • Like 1

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

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

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

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

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

Σύνδεση

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

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