thanos713 Δημοσ. 10 Ιουνίου 2019 Δημοσ. 10 Ιουνίου 2019 (επεξεργασμένο) 15 λεπτά πριν, Salecon είπε Δεν περίμενα διαφορετική απάντηση. Μισή με όρους που θα έπρεπε (για κάποιο μυστήριο λόγο) να γνωρίζει ο κάθε αναγνώστης και μισή με ασάφειες (τι είναι το «Ν»; Πατάτες; Ντομάτες; Πλήθος στοιχείων ενός πίνακα; ), και σίγουρα με πολλή δόση άμυνας, μην τυχόν και μειωθεί το e-ego. Ό,τι πεις αδερφέ. Είχα μια σκασίλα! Κάτσε γράφε 8 nested loops και νόμιζε ότι όλα είναι όπως θα έπρεπε. Ποιον όρο δεν κατάλαβες ακριβώς; Αυτόν που έβαλα σε παρένθεση προφανώς και δεν περίμενα να τον ξέρει κανείς (τον έβαλα απλά για να δικαιολογήσω κάπως ότι από 4η τάξη έχουμε 8 δείκτες, δεκτό το να μπέρδεψε αντί να βοήθησε), αλλά τανυστής θεωρώ πως καταλαβαίνεις τι είναι, και σου εξήγησα με πολύ απλά λόγια ότι αφού έχω μία εξίσωση με 8 δείκτες, έχει σίγουρα 8 nested loops. Τι άμυνα και ego μου τσαμπουνάς; Όσο για το N. Το Ν πάντα αφορά κάτι που χαρακτηρίζει το πρόβλημα. Ανέφερα πιο πριν ότι κάνω quantum chemistry. Εγώ εκεί τι λες να βάζω; ντομάτες; Άμα δεν καταλαβαίνεις ρώτα. Διάβασες καθόλου τι έγραψα ή απλά ήθελες να θεωρήσεις αυτόματα ότι 8 loops -> not optimized; Άμα ήθελες να βοηθήσεις μπορούσες να ρωτήσεις "είναι optimized τα 8 nested loops ή όχι;". Εσύ απευθείας μπήκες στην επίθεση χωρίς λόγο. Επεξ/σία 10 Ιουνίου 2019 από thanos713 4
vel0city Δημοσ. 10 Ιουνίου 2019 Δημοσ. 10 Ιουνίου 2019 (επεξεργασμένο) Αδικαιολόγητη η επίθεση εντελώς, αλλά @thanos713 εφόσον μιλάς για αλγοριθμική πολυπλοκότητα η συνηθισμένη σημειογραφία είναι το Big O notation, δηλαδή O(n!) και όχι N! (αν και κατά τη γνώμη μου ήταν προφανές τι εννοείς απ'τα συμφραζόμενα). Επεξ/σία 10 Ιουνίου 2019 από vel0city 5
Dinos_12345 Δημοσ. 10 Ιουνίου 2019 Δημοσ. 10 Ιουνίου 2019 (επεξεργασμένο) 3 ώρες πριν, Salecon είπε Δεν περίμενα διαφορετική απάντηση. Μισή με όρους που θα έπρεπε (για κάποιο μυστήριο λόγο) να γνωρίζει ο κάθε αναγνώστης και μισή με ασάφειες (τι είναι το «Ν»; Πατάτες; Ντομάτες; Πλήθος στοιχείων ενός πίνακα; ), και σίγουρα με πολλή δόση άμυνας, μην τυχόν και μειωθεί το e-ego. Ό,τι πεις αδερφέ. Είχα μια σκασίλα! Κάτσε γράφε 8 nested loops και νόμιζε ότι όλα είναι όπως θα έπρεπε. Και εμείς είχαμε μια σκασίλα για την γνώμη σου. Επίσης, μίλησε για εξειδικευμένο πρόγραμμα, συγνώμη που δεν κάνουν όλα adapt στο επίπεδο σου. Επεξ/σία 10 Ιουνίου 2019 από Dinos_12345 1
Lanike71 Δημοσ. 10 Ιουνίου 2019 Δημοσ. 10 Ιουνίου 2019 Ποτέ δεν κατάλαβα γιατί τα καλύτερα θέματα πρέπει να κλείνουν γρήγορα ντε και καλά. Ο συνάδελφος Salecon μάλλον έχει δίκιο, αλλά ποιός ο λόγος της επίθεσης, δεν τον κατάλαβα. Ναι, όταν έχεις 8 loops, δεν είναι ότι κάνεις λάθος στη σκέψη. Απλά δε σκέφτεσαι το μετά. Και αν χρειαστεί να βάλεις άλλα 8 loops εκεί μέσα τι θα κάνεις; Ξαναγράφεις; Μάλλον όχι. Υπάρχει λύση σε αυτό και λέγεται αναδρομή. Το οποίο μην είστε σίγουροι ότι έχει καλύτερα απότελέσματα από θέμα χρόνου.Συγκεκριμένα, χρειάστηκε να φτιάξω ένα πρόγραμμα το οποίο έπαιρνε πολλά arrayLists και δημιουργούσε το καρτεσιανό γινόμενο των περιεχομένων τους. Ας πούμε, αν είχαμε 15 λίστες και κάθε λίστα 3 αντικείμενα, τότε 3^15, κάπου 14 εκ. Για το χαβαλέ, αφού έφτιαξα την αναδρομή, είπα να δω και τα loops. Προς έκπληξή μου ο χρόνος δημιουργίας ήταν ίδιος. Η διαφορά ήταν στη σκέψη όμως και στο πόσο γράφεις. Αυτή την εποχή "τελειώνω" ένα πρόγραμμα για το Πάμε Στοίχημα του ΟΠΑΠ. Τελειώνω σε εισαγωγικά, καθώς πάντα έχεις κάτι νέο να προσθέσεις. 1
masteripper Δημοσ. 10 Ιουνίου 2019 Δημοσ. 10 Ιουνίου 2019 Πρώτα κάνεις μια εφαρμογή που δουλεύει και μετά ψάχνεις το optimization...αν σου επιτρέπεται/μπορείς να το κάνεις παράλληλα ...- ή καλύτερα εξαρχής - τότε όλα καλά...αν όμως προσπαθείς να υλοποιήσεις μια ιδέα....τότε όλα τα άλλα είναι οδοντόκρεμες... 3
thanos713 Δημοσ. 10 Ιουνίου 2019 Δημοσ. 10 Ιουνίου 2019 15 ώρες πριν, vel0city είπε Αδικαιολόγητη η επίθεση εντελώς, αλλά @thanos713 εφόσον μιλάς για αλγοριθμική πολυπλοκότητα η συνηθισμένη σημειογραφία είναι το Big O notation, δηλαδή O(n!) και όχι N! (αν και κατά τη γνώμη μου ήταν προφανές τι εννοείς απ'τα συμφραζόμενα). Πράγματι, ήταν λάθος μου. Παρόλα αυτά, μιας και το έφερε η κουβέντα, όταν έχουμε πάντα την ίδια πολυπλοκότητα πώς το συμβολίζουμε; Εννοώ όταν έχουμε Big Omega ίσο με Big O. Big Theta; 6 ώρες πριν, Lanike71 είπε Ο συνάδελφος Salecon μάλλον έχει δίκιο, αλλά ποιός ο λόγος της επίθεσης, δεν τον κατάλαβα. Ναι, όταν έχεις 8 loops, δεν είναι ότι κάνεις λάθος στη σκέψη. Απλά δε σκέφτεσαι το μετά. Και αν χρειαστεί να βάλεις άλλα 8 loops εκεί μέσα τι θα κάνεις; Ξαναγράφεις; Μάλλον όχι. Υπάρχει λύση σε αυτό και λέγεται αναδρομή. Το οποίο μην είστε σίγουροι ότι έχει καλύτερα απότελέσματα από θέμα χρόνου.Συγκεκριμένα, χρειάστηκε να φτιάξω ένα πρόγραμμα το οποίο έπαιρνε πολλά arrayLists και δημιουργούσε το καρτεσιανό γινόμενο των περιεχομένων τους. Ας πούμε, αν είχαμε 15 λίστες και κάθε λίστα 3 αντικείμενα, τότε 3^15, κάπου 14 εκ. Για το χαβαλέ, αφού έφτιαξα την αναδρομή, είπα να δω και τα loops. Προς έκπληξή μου ο χρόνος δημιουργίας ήταν ίδιος. Η διαφορά ήταν στη σκέψη όμως και στο πόσο γράφεις. Γενικά νομίζω μπλεχτήκαμε λίγο γιατί μπορούν να γίνουν 3 βελτιστοποιήσεις (ή τουλάχιστον έτσι μου φαίνεται εμένα). 1) Βελτιστοποίηση στον αλγόριθμό. Εγώ απ''ότι κατάλαβα η ένσταση πάνω σε αυτό το κομμάτι ήταν και προσπάθησα να εξηγήσω ότι δεν πρόκεται να γίνει βελτίωση, διότι ο αλγόριθμος είναι έτσι, τελεία. 2) Βελτιστοποίηση σε ταχύτητα. Σίγουρα υπάρχει τεράστιο περιθώριο, αλλά δεν κατάλαβα ότι αναφερόταν σε αυτό πριν. Σίγουρα μία που μπορώ να σκεφτώ είναι με χρήση υπαρχουσών γρήγορων συναρτήσεων για πολλαπλασιασμό πινάκων, αν στο επιτρέπουν οι εξισώσεις. Ή κάτι αντίστοιχο με dot products. Κάποια στιγμή είχα δει μια τέτοια υλοποίηση για μερικές από τις εξισώσεις και η διαφορά ήταν όντως τεράστια. Αλλά η πολυπλοκότητα η ίδια παραμένει υποθέτω... Fun fact: Κάτι το οποίο πιστεύω το γνωρίζετε εσείς, αλλά θα το αναφέρω, είναι το πόσο μεγάλο speedup παίρνεις άμα κάνεις reduction σε μια μεταβλητή αντί για απευθείας στη θέση του array που θες. Θέλω να πω, ακόμα και αυτό μια βελτιστοποίηση είναι... 3) Βελτιστοποίηση στον κώδικα. Ενδιαφέρον παράδειγμα αυτό που αναφέρεις, δε το 'χα σκεφτεί, αλλά μπορώ να φανταστώ πού έχει χρήση. Δυστυχώς όμως, στον κωδικά μου δεν έχει χρήση διότι οι εξισώσεις είναι fixed (από τη δεκαετία των 80s...) και κάθε εξίσωση είναι διαφορετική, επομένως δε μπορώ να "βασίσω" κάτι πάνω σε κάτι άλλο. Σημαντικό πάντως που το ανέφερες για άλλες περιπτώσεις. --------------------------------------------------------------- Όπως και να'χει δεν ήθελα να ανεβούν οι τόνοι, και συγγνώμη αν άθελά μου έδειξα να προσπαθώ να "πουλήσω μούρη"...
vaggelisdan Δημοσ. 10 Ιουνίου 2019 Δημοσ. 10 Ιουνίου 2019 1 ώρα πριν, thanos713 είπε Πράγματι, ήταν λάθος μου. Παρόλα αυτά, μιας και το έφερε η κουβέντα, όταν έχουμε πάντα την ίδια πολυπλοκότητα πώς το συμβολίζουμε; Εννοώ όταν έχουμε Big Omega ίσο με Big O. Big Theta; Ναι, όταν Ω == Ο τότε έχεις Θ (όταν πχ δυο συναρτήσεις, για μεγάλα n συμπεριφέρονται παρόμοια, δες logn και την αρμονική σειρά 1/n , αυτές οι δύο είναι Θ) 1
PC_MAGAS Δημοσ. 15 Ιουνίου 2019 Δημοσ. 15 Ιουνίου 2019 Όπως προείπα κάνω έναν απλό TCP command handling server. (είπα telnet αλλά βαριόμουνα να διαβάζω RFC) και περιμένω τα σχόλιά σας στο: https://codereview.stackexchange.com/q/222371/119952 Ακόμη ο κώδικας είναι στο: https://github.com/pc-magas/tcp_command
splanis Δημοσ. 16 Ιουνίου 2019 Δημοσ. 16 Ιουνίου 2019 Πρώτη μου επαφή με την java σε ενα εργαστήριο ειχαμε αυτό το projectακι, 12 ωρες μου πηρε αλλα τα καταφερα 😂 1
PC_MAGAS Δημοσ. 17 Ιουνίου 2019 Δημοσ. 17 Ιουνίου 2019 Στις 16/6/2019 στις 3:51 ΜΜ, splanis είπε Πρώτη μου επαφή με την java σε ενα εργαστήριο ειχαμε αυτό το projectακι, 12 ωρες μου πηρε αλλα τα καταφερα 😂 Καλή προσπάθεια :clap: :clap: Το έκανες σε swing; 1
splanis Δημοσ. 18 Ιουνίου 2019 Δημοσ. 18 Ιουνίου 2019 (επεξεργασμένο) 3 ώρες πριν, PC_MAGAS είπε Καλή προσπάθεια 👏 👏 Το έκανες σε swing; ναι, η αληθεια ειναι οτι μ φανηκε πολυ ενδιαφερον και περασαν οι ωρες χωρις να το καταλαβω, μαλιστα τα icons στα buttons, τα redo-undo οπως και να ψευτο darkmode που εβαλα δεν ηταν στα ζητουμενα, και εκει που με εψηναν πιο πολυ τα δικτυα τωρα μπερδευτηκα 😂 Επεξ/σία 18 Ιουνίου 2019 από splanis
stefanos90_K Δημοσ. 18 Ιουνίου 2019 Μέλος Δημοσ. 18 Ιουνίου 2019 (επεξεργασμένο) Αυτές τις μέρες εξακολουθώ να ασχολούμαι με θερμοκρασίες... Θέλω να δω κατά πόσο μέσα πέφτει στις προβλέψεις το meteo.gr Κάνω σύγκριση τα δεδομένα που προβλέπει η σελίδα και τα δεδομένα που στέλνει ένας μετεωρολογικός σταθμός που βρίσκεται μέσα στην πόλη. https://github.com/tsaklidis/MeteoValidation Όταν μαζευτούν τα δεδομένα το αποτέλεσμα είναι κάπως έτσι: Επεξ/σία 18 Ιουνίου 2019 από stefanos90_K add screen 8
Στεφανος123 Δημοσ. 27 Ιουνίου 2019 Δημοσ. 27 Ιουνίου 2019 Στις 16/6/2019 στις 3:51 ΜΜ, splanis είπε Πρώτη μου επαφή με την java σε ενα εργαστήριο ειχαμε αυτό το projectακι, 12 ωρες μου πηρε αλλα τα καταφερα 😂 Στις 17/6/2019 στις 9:37 ΜΜ, PC_MAGAS είπε Καλή προσπάθεια 👏 👏 Το έκανες σε swing; Αν δεν κανω λαθος δεν υποστηριζεται εδω και καποια χρονια η swing. Για Java GUI καλυτερα σε JavaFx. 1
splanis Δημοσ. 27 Ιουνίου 2019 Δημοσ. 27 Ιουνίου 2019 (επεξεργασμένο) 7 λεπτά πριν, Στεφανος123 είπε Αν δεν κανω λαθος δεν υποστηριζεται εδω και καποια χρονια η swing. Για Java GUI καλυτερα σε JavaFx. δεν ξερω απλα swing δουλευαμε στο μαθημα οποτε εκει το εκανα. (java 8 ) Επεξ/σία 27 Ιουνίου 2019 από splanis
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα