Πρόγραμμα: vieta.c
Ο Γάλλος μαθηματικός Βιετά (Francois Viete) υπήρξε ο πρώτος μαθηματικός που χρησιμοποίησε ευρέως σύμβολα για να εκφράσει αριθμητικές ποσότητες. Το 1593 κατάφερε να εκφράσει και να υπολογίσει τον αριθμό \(\pi\) με ακρίβεια 9 δεκαδικών, βελτιώνοντας έτσι το σχετικό αποτέλεσμα του Αρχιμήδη. Για να υπολογίσει το \(\pi\), ο Βιετά χρησιμοποίησε μια σχέση που χρησιμοποιεί ένα απειρογινόμενο όρων \(t_i\), γνωστό ως φόρμουλα Βιετά προς τιμήν του:
\[\frac{2}{\pi} = \underbrace{\frac{\sqrt{2}}{2}}_{t_1} \cdot \underbrace{\frac{\sqrt{2+\sqrt{2}}}{2}}_{t_2} \cdot \underbrace{\frac{\sqrt{2+\sqrt{2+\sqrt{2}}}}{2}}_{t_3} \cdots\]Λύνοντας την παραπάνω σχέση ως προς \(\pi\), μπορούμε και εμείς να προσεγγίσουμε το \(\pi\) όπως ο Βιετά. Μάλιστα, όσους περισσότερους όρους \(t_i\) χρησιμοποιούμε, τόσο καλύτερη η προσέγγισή μας. Γράψτε ένα πρόγραμμα C το οποίο παίρνει έναν θετικό ακέραιο ως όρισμα από την γραμμή εντολών που αντιπροσωπεύει πόσους πρώτους όρους \(t_i\) να χρησιμοποιήσει στον υπολογισμό του \(\pi\) και στην συνέχεια εκτυπώνει την προσέγγιση του \(\pi\) με 9 δεκαδικά ψηφία. Παραδείγματα εκτέλεσης είναι τα εξής:
$ gcc -o vieta vieta.c -lm
$ ./vieta 2
Multiplied first 2 ti terms, pi = 3.061467459
$ ./vieta 5
Multiplied first 5 ti terms, pi = 3.140331157
$ ./vieta 50
Multiplied first 50 ti terms, pi = 3.141592654
Κάθε αριθμητής προκύπτει από τον προηγούμενο: αν ο αριθμητής του t_i είναι a, ο επόμενος είναι √(2 + a). Πολλαπλασιάστε τους πρώτους N όρους σε έναν double και λύστε τη σχέση ως προς π. Χρειάζεστε math.h και -lm, και έλεγχο ότι το όρισμα είναι θετικός ακέραιος.
Αριθμός στον οδηγό: Α6.22
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: exam-2023-fall-ex13-q1 ·
Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2023-fall-ex13-q1.html ·
Markdown (GitHub)