Διαδρομές
/
Python
Python
/
Ασκήσεις
/
Πυθαγόρεια τριάδα
Πυθαγόρεια τριάδα

Πυθαγόρεια τριάδα

Εύκολο

Εισαγωγή

Είσαι ένας καταξιωμένος λύτης προβλημάτων, γνωστός για την ικανότητά σου να αντιμετωπίζεις τα πιο απαιτητικά μαθηματικά παζλ. Ένα βράδυ, λαμβάνεις ένα επείγον γράμμα από έναν εφευρέτη που λέγεται Triangle Tinkerer, ο οποίος δουλεύει πάνω σε ένα πρωτοποριακό νέο έργο. Το γράμμα λέει:

Αγαπητέ Μαθηματικέ,

Χρειάζομαι τη βοήθειά σου. Σχεδιάζω μια συσκευή που βασίζεται στις μοναδικές ιδιότητες των πυθαγόρειων τριάδων, δηλαδή συνόλων τριών ακεραίων που ικανοποιούν την εξίσωση a² + b² = c². Αυτή η συσκευή θα φέρει επανάσταση στην πλοήγηση, αλλά για να δουλέψει, πρέπει να την προγραμματίσω με κάθε δυνατή τριάδα όπου το άθροισμα των a, b και c ισούται με έναν συγκεκριμένο αριθμό, N. Ο υπολογισμός αυτών των τριάδων με το χέρι θα μου έπαιρνε χρόνια, αλλά ακούω ότι είσαι παραπάνω από ικανός για αυτό το έργο.

Ο χρόνος είναι κρίσιμος. Το μέλλον της εφεύρεσής μου, και ίσως ακόμη και το μέλλον της μαθηματικής καινοτομίας, εξαρτάται από την ικανότητά σου να λύσεις αυτό το πρόβλημα.

Υποκινημένος από τη σημασία του έργου, ξεκινάς να βρεις όλες τις πυθαγόρειες τριάδες που ικανοποιούν τη συνθήκη. Η δουλειά σου θα μπορούσε να έχει εκτεταμένες επιπτώσεις, ανοίγοντας νέες δυνατότητες στην επιστήμη και τη μηχανική. Μπορείς να ανταποκριθείς στην πρόκληση και να γράψεις ιστορία;

Οδηγίες

Μια πυθαγόρεια τριάδα είναι ένα σύνολο τριών φυσικών αριθμών, {a, b, c}, για τους οποίους ισχύει ότι

a² + b² = c²

και ότι

a < b < c

Για παράδειγμα,

3² + 4² = 5².

Δεδομένου ενός ακέραιου αριθμού N, βρες όλες τις πυθαγόρειες τριάδες για τις οποίες a + b + c = N.

Για παράδειγμα, με N = 1000, υπάρχει ακριβώς μία πυθαγόρεια τριάδα για την οποία a + b + c = 1000: {200, 375, 425}.

Note

Η παραπάνω περιγραφή αναφέρει μαθηματικά σύνολα, αλλά και ότι μια Πυθαγόρεια τριάδα {a, b, c} πρέπει να είναι διατεταγμένη έτσι ώστε a < b < c (αύξουσα σειρά).

Αυτό κάνει τον τύπο set της Python ακατάλληλο για αυτή την άσκηση, αφού είναι εκ φύσεως μη διατεταγμένος. Αντ' αυτού, θα πρέπει να επιστρέψεις μια list από lists (π.χ. [[a, b, c]]). Μπορείς να δημιουργήσεις τις τριάδες με όποια σειρά θέλεις, αφού η σειρά της εξωτερικής list αγνοείται στα τεστ.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Python Exercism

Έτοιμος να ξεκινήσεις την άσκηση Πυθαγόρεια τριάδα;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Python με 17 έννοιες146 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.