####ID 55-polynomial-from-roots-X #### #### Άσκηση: (δε μετράει στο βαθμό) #### #### Όταν ένα πολυώνυμο έχει πολύ λίγα μη μηδενικά μονώνυμα σε σχέση με το βαθμό του τότε #### το αναπαριστούμε ως ένα "αραιό" (sparse) πολυώνυμο. Αντί δηλ. να κρατάμε όλους τους συντελεστές #### των μονωνύμων του έως το βαθμό του πολυωνύμου κρατάμε μόνο τους μη μηδενικούς συντελεστές #### σε ένα λεξικό. #### #### Για παράδειγμα, το πολυώνυμο 1+2x^3-x^9 το αναπαριστούμε ως το λεξικό #### #### {0: 1, 3: 2, 9: -1}. #### #### Τα κλειδιά του λεξικού είναι οι βαθμοί και οι τιμές είναι οι αντίστοιχοι συντελεστές, πάντα #### διάφοροι του μηδενός. #### #### Γράψτε μια συνάρτηση #### #### polyFromRoots(roots) #### #### που παίρνει ως όρισμα μια λίστα ακεραίων αριθμών roots = [r1, r2, ... , rN] και επιστρέφει #### το πολυώνυμο #### #### (x-r1)(x-r2)...(x-rN) #### #### με την παραπάνω αναπαράσταση (ως αραιό πολυώνυμο δηλ.). #### #### *** Παράδειγμα *** #### #### Αν roots=[1, 1, 2] τότε η συνάρτηση επιστρέφει το πολυώνυμο (x-1)(x-1)(x-2) που είναι #### το x^3-4x^2+5x-1, άρα επιστρέφει το λεξικό {3: 1, 2: -4, 1: 5, 0: -2}. #### #### *** Γενικές Οδηγίες: *** #### #### Γράφετε τον κώδικά σας αποκλειστικά ανάμεσα στις γραμμές START και STOP παρακάτω. #### Δεν πρέπει να πειράξετε καθόλου τις υπόλοιπες γραμμές #### #### Για να τρέξετε το πρόγραμμά σας (αποθηκευμένο στο αρχείο user.py) δίνετε την εντολή #### #### python3 user.py #### #### ενώ για να το ελέγξετε με τον tester δίνετε την εντολή #### #### python3 tester.py #### #### φροντίζοντας τα αρχεία user.py και tester.py να είναι στον ίδιο κατάλογο (directory) #### #### ****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ**** #### Μη γράψετε καμιά εντολή εισόδου (input) ή εξόδου (print) #### στον κώδικα που θα βάλετε ανάμεσα στα START και STOP. Αυτά είναι ήδη γραμμένα. #### Αν βάλετε και σεις το πρόγραμμά σας βγαίνει λάθος. #### rlist = eval(input("Δώστε τη λίστα των ριζών του πολυωνύμου: ")) #### #### #### Υποθέσεις: #### #### Στο σημείο αυτό έχει δοθεί η λίστα των ριζών του πολυωνύμου στη μεταβλητή rlist. #### #### Απαιτήσεις: #### #### Στο τέλος του προγράμματός σας θα πρέπει #### #### η συνάρτηση polyFromRoots #### #### να υπολογίζει αυτό που περιγράφεται στην εκφώνηση. #### ####START Από δω και κάτω γράφετε το πρόγραμμά σας.---------------------------------------------------------------- def polyFromRoots(roots): #### ####STOP Μην αλλάξετε ό,τι είναι από τη γραμμή αυτή και κάτω-------------------------------------------------------- print("Η λίστα ριζών είναι η {}. Η απάντηση είναι {}".format(rlist, polyFromRoots(rlist))) ####