####ID 19-chain-X #### Άσκηση: (δε μετράει για το βαθμό bonus) #### #### Δίδεται ένας φυσικός αριθμός N >= 1. Ας είναι επίσης f, g δύο συναρτήσεις με πεδίο ορισμού το #### σύνολο {0, 1, 2, ..., N-1} και με τιμές στο ίδιο σύνολο. Οι συναρτήσεις f, g παριστάνονται με #### δύο λίστες F και G μήκους N η κάθε μία. Η τιμή f(i) είναι η τιμή F[i] (για i=0,1,2,...,N-1) #### και αντίστοιχα για τη λίστα G και τη συνάρτηση g. #### #### Δίδεται επίσης ένα string chain, μπορεί και κενό, που αποτελείται μόνο από τα γράμματα "f" ή "g", #### π.χ. chain="ffgf". Υπολογίστε τη συνάρτηση h:{0, 1, ..., N-1} -> {0, 1, ..., N-1} που είναι η #### σύνθεση των συναρτήσεων f ή g με τη σειρά που δίνονται στο string chain. Η συνάρτηση h θα #### πρέπει να είναι αποθηκευμένη στη λίστα H, όπως και οι f και g. #### #### Αν το string chain είναι το κενό string τότε το αποτέλεσμα είναι η ταυτοτική συνάρτηση x -> x. #### #### Η σύνθεση των δύο συναρτήσεων ορίζεται να είναι η συνάρτηση #### #### f o g(x) = f(g(x)), για x=0,1,2,...,N-1. #### #### *** Παράδειγμα: *** #### #### Αν N=5, F=[0, 0, 3, 2, 4] και G=[4, 3, 2, 4, 4] και chain="ggf" τότε πρέπει να υπολογίσετε #### την αναπαράσταση σε λίστα της συνάρτησης h(x) = g(g(f(x))), η οποία είναι η #### H = [4, 4, 4, 2, 4]. #### #### *** Γενικές Οδηγίες: *** #### #### Γράφετε τον κώδικά σας αποκλειστικά ανάμεσα στις γραμμές START και STOP παρακάτω. #### Δεν πρέπει να πειράξετε καθόλου τις υπόλοιπες γραμμές #### #### Για να τρέξετε το πρόγραμμά σας (αποθηκευμένο στο αρχείο user.py) δίνετε την εντολή #### #### python3 user.py #### #### ενώ για να το ελέγξετε με τον tester δίνετε την εντολή #### #### python3 tester.py #### #### φροντίζοντας τα αρχεία user.py και tester.py να είναι στον ίδιο κατάλογο (directory) #### #### ****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ**** #### Μη γράψετε καμιά εντολή εισόδου (input) ή εξόδου (print) #### στον κώδικα που θα βάλετε ανάμεσα στα START και STOP. Αυτά είναι ήδη γραμμένα. #### Αν βάλετε και σεις το πρόγραμμά σας βγαίνει λάθος. #### N = int(input("Δώστε το φυσικό αριθμό N: ")) #### F = eval(input("Δώστε τη λίστα των τιμών της συνάρτησης f: ")) #### G = eval(input("Δώστε τη λίστα των τιμών της συνάρτησης g: ")) #### chain = input("Δώστε το string chain: ") #### #### Υποθέσεις: #### #### Στο σημείο αυτό ο χρήστης έχει δώσει το N, τις λίστες F, G και το string chain όπως περιγράφονται παραπάνω. #### #### Απαιτήσεις: #### #### Στο τέλος του προγράμματός σας θα πρέπει #### #### στη μεταβλητή H #### #### θα πρέπει να βρίσκεται αυτό που περιγράφεται στην εκφώνηση. #### Μην αλλάξετε ό,τι είναι από τη γραμμή αυτή και πάνω ####START Από δω και κάτω γράφετε το πρόγραμμά σας.---------------------------------------------------------------- ####STOP Μην αλλάξετε ό,τι είναι από τη γραμμή αυτή και κάτω-------------------------------------------------------- print("Η απάντηση είναι {}.".format(H)) ####