Επισκέπτης Δημοσ. 7 Μαρτίου 2023 Δημοσ. 7 Μαρτίου 2023 (επεξεργασμένο) Στην πραγματικότητα δεν χρειάζεσαι κανέναν υπολογισμό. Αν το Χ που διαλέξεις είναι άρτιος τότε η ακολουθία της δεύτερης λίστας θα είναι όλα 0 (μηδέν) ενώ αν είναι περιττος θα είναι 1,0,1,0 κτλ κτλ Επεξ/σία 7 Μαρτίου 2023 από antonis35
Επισκέπτης Δημοσ. 7 Μαρτίου 2023 Δημοσ. 7 Μαρτίου 2023 11 λεπτά πριν, antonis35 είπε Στην πραγματικότητα δεν χρειάζεσαι κανέναν υπολογισμό. Αν το Χ που διαλέξεις είναι άρτιος τότε η ακολουθία της δεύτερης λίστας θα είναι όλα 0 (μηδέν) ενώ αν είναι περιττος θα είναι 1,0,1,0 κτλ κτλ Άρα θα χρειαστείς τον υπολογισμό της αρτιότητας του x. Επίσης θα πρέπει να χτίσεις τη δεύτερη λίστα σου. Θα μπορούσες ενδεχομένως να κάνεις ένα: mylist = [0]*y if x%2: for i in range(0,y,2): mylist[i]=1 Αξίζει;
Επισκέπτης Δημοσ. 7 Μαρτίου 2023 Δημοσ. 7 Μαρτίου 2023 5 λεπτά πριν, Orestis_G είπε Άρα θα χρειαστείς τον υπολογισμό της αρτιότητας του x. Επίσης θα πρέπει να χτίσεις τη δεύτερη λίστα σου. Θα μπορούσες ενδεχομένως να κάνεις ένα: mylist = [0]*y if x%2: for i in range(0,y,2): mylist[i]=1 Αξίζει; Ποιο στοιχίζει σε πολυπλοκότητα περισσότερο, η διαπεραση της λίστας και έλεγχος κάθε αριθμού και δημιουργία νέας λίστας ή ο έλεγχος ενός αριθμού και η δημιουργία νεας λίστας;
Επισκέπτης Δημοσ. 7 Μαρτίου 2023 Δημοσ. 7 Μαρτίου 2023 @antonis35 Προφανώς κι έχεις πλεονέκτημα ειδικά στην περίπτωση των αρτίων, που σταματάς στην αρχικοποίηση. Το ζήτημα είναι αν το πλεονέκτημα είναι τόσο μεγάλο ώστε να δικαιολογήσει την πιο "δυσανάγνωστη" λύση που θα προκύψει. Η απάντηση εδώ είναι, κατά τη γνώμη μου, "εξαρτάται από το πρόβλημα". Μετρώντας πρόχειρα με time() σε λίστα 100.000.000 στοιχείων η λύση με τον έλεγχο κάθε στοιχείου έκανε 2.073 δευτερόλεπτα, η λύση με τον έλεγχο του x 2,092 στην περίπτωση του περιττού, και 0,139 για τον άρτιο. Η δημιουργία του αρχικού πίνακα χρειάστηκε 3,637 δευτερόλεπτα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα