Προς το περιεχόμενο

Τι προγραμματίζετε αυτον τον καιρό?


stefanos90_K

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)
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 ή όχι;". Εσύ απευθείας μπήκες στην επίθεση χωρίς λόγο.

Επεξ/σία από thanos713
  • Like 4
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Αδικαιολόγητη η επίθεση εντελώς, αλλά @thanos713 εφόσον μιλάς για αλγοριθμική πολυπλοκότητα η συνηθισμένη σημειογραφία είναι το Big O notation, δηλαδή O(n!) και όχι N!  (αν και κατά τη γνώμη μου ήταν προφανές τι εννοείς απ'τα συμφραζόμενα).

Επεξ/σία από vel0city
  • Like 5
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
3 ώρες πριν, Salecon είπε

Δεν περίμενα διαφορετική απάντηση. Μισή με όρους που θα έπρεπε (για κάποιο μυστήριο λόγο) να γνωρίζει ο κάθε αναγνώστης και μισή με ασάφειες (τι είναι το «Ν»; Πατάτες; Ντομάτες; Πλήθος στοιχείων ενός πίνακα; ), και σίγουρα με πολλή δόση άμυνας, μην τυχόν και μειωθεί το e-ego. 

Ό,τι πεις αδερφέ. Είχα μια σκασίλα!

Κάτσε γράφε 8 nested loops και νόμιζε ότι όλα είναι όπως θα έπρεπε. 

Και εμείς είχαμε μια σκασίλα για την γνώμη σου. Επίσης, μίλησε για εξειδικευμένο πρόγραμμα, συγνώμη που δεν κάνουν όλα adapt στο επίπεδο σου.

Επεξ/σία από Dinos_12345
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ποτέ δεν κατάλαβα γιατί τα καλύτερα θέματα πρέπει να κλείνουν γρήγορα ντε και καλά.

Ο συνάδελφος Salecon μάλλον έχει δίκιο, αλλά ποιός ο λόγος της επίθεσης, δεν τον κατάλαβα.

Ναι, όταν έχεις 8 loops, δεν είναι ότι κάνεις λάθος στη σκέψη. Απλά δε σκέφτεσαι το μετά. Και αν χρειαστεί να βάλεις άλλα 8 loops εκεί μέσα τι θα κάνεις; Ξαναγράφεις;

Μάλλον όχι.

Υπάρχει λύση σε αυτό και λέγεται αναδρομή. Το οποίο μην είστε σίγουροι ότι έχει καλύτερα απότελέσματα από θέμα χρόνου.Συγκεκριμένα, χρειάστηκε να φτιάξω ένα πρόγραμμα το οποίο έπαιρνε πολλά arrayLists και δημιουργούσε το καρτεσιανό γινόμενο των περιεχομένων τους. Ας πούμε, αν είχαμε 15 λίστες και κάθε λίστα 3 αντικείμενα, τότε 3^15, κάπου 14 εκ.

Για το χαβαλέ, αφού έφτιαξα την αναδρομή, είπα να δω και τα loops. Προς έκπληξή μου ο χρόνος δημιουργίας ήταν ίδιος. Η διαφορά ήταν στη σκέψη όμως και στο πόσο γράφεις.

 

Αυτή την εποχή "τελειώνω" ένα πρόγραμμα για το Πάμε Στοίχημα του ΟΠΑΠ. Τελειώνω σε εισαγωγικά, καθώς πάντα έχεις κάτι νέο να προσθέσεις.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πρώτα κάνεις μια εφαρμογή που δουλεύει και μετά ψάχνεις το optimization...αν σου επιτρέπεται/μπορείς να το κάνεις παράλληλα ...- ή καλύτερα εξαρχής - τότε όλα καλά...αν όμως προσπαθείς να υλοποιήσεις μια ιδέα....τότε όλα τα άλλα είναι οδοντόκρεμες...

  • Like 3
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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...) και κάθε εξίσωση είναι διαφορετική, επομένως δε μπορώ να "βασίσω" κάτι πάνω σε κάτι άλλο. Σημαντικό πάντως που το ανέφερες για άλλες περιπτώσεις.

---------------------------------------------------------------

 

Όπως και να'χει δεν ήθελα να ανεβούν οι τόνοι, και συγγνώμη αν άθελά μου έδειξα να προσπαθώ να "πουλήσω μούρη"...

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

1 ώρα πριν, thanos713 είπε

Πράγματι, ήταν λάθος μου. Παρόλα αυτά, μιας και το έφερε η κουβέντα, όταν έχουμε πάντα την ίδια πολυπλοκότητα πώς το συμβολίζουμε; Εννοώ όταν έχουμε Big Omega ίσο με Big O.

Big Theta;

Ναι, όταν Ω == Ο τότε έχεις Θ (όταν πχ δυο συναρτήσεις, για μεγάλα n συμπεριφέρονται παρόμοια, δες logn και την αρμονική σειρά 1/n , αυτές οι δύο είναι Θ)

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όπως προείπα κάνω έναν απλό TCP command handling server. (είπα telnet αλλά βαριόμουνα να διαβάζω RFC) και περιμένω τα σχόλιά σας στο: https://codereview.stackexchange.com/q/222371/119952

Ακόμη ο κώδικας είναι στο: https://github.com/pc-magas/tcp_command

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στις 16/6/2019 στις 3:51 ΜΜ, splanis είπε

Πρώτη μου επαφή με την java σε ενα εργαστήριο ειχαμε αυτό το projectακι, 12 ωρες μου πηρε αλλα τα καταφερα 😂

image.png.916935d1e228f64cd93c58bedb842a4e.pngimage.png.220bfe4a1ff71fb835f84308fcef732b.pngimage.png.a5e618615324c66a6dfc8868ec16c3a6.pngimage.png.e3d8940b14301aabbf75a2ec38230a3e.png

Καλή προσπάθεια :clap: :clap: Το έκανες σε swing;

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
3 ώρες πριν, PC_MAGAS είπε

Καλή προσπάθεια 👏 👏 Το έκανες σε swing;

ναι, η αληθεια ειναι οτι μ φανηκε πολυ ενδιαφερον και περασαν οι ωρες χωρις να το καταλαβω, μαλιστα τα icons στα buttons, τα redo-undo οπως και να ψευτο darkmode που εβαλα δεν ηταν στα ζητουμενα, και εκει που με εψηναν πιο πολυ τα δικτυα τωρα μπερδευτηκα 😂

Επεξ/σία από splanis
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Αυτές τις μέρες εξακολουθώ να ασχολούμαι με θερμοκρασίες...
Θέλω να δω κατά πόσο μέσα πέφτει στις προβλέψεις το meteo.gr

Κάνω σύγκριση τα δεδομένα που προβλέπει η σελίδα και τα δεδομένα που στέλνει ένας μετεωρολογικός σταθμός που βρίσκεται μέσα στην πόλη.
https://github.com/tsaklidis/MeteoValidation

Όταν μαζευτούν τα δεδομένα το αποτέλεσμα είναι κάπως έτσι:

sample.png

Επεξ/σία από stefanos90_K
add screen
  • Like 8
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 εβδομάδες αργότερα...
Στις 16/6/2019 στις 3:51 ΜΜ, splanis είπε

Πρώτη μου επαφή με την java σε ενα εργαστήριο ειχαμε αυτό το projectακι, 12 ωρες μου πηρε αλλα τα καταφερα 😂

 

 

Στις 17/6/2019 στις 9:37 ΜΜ, PC_MAGAS είπε

Καλή προσπάθεια 👏 👏 Το έκανες σε swing;

Αν δεν κανω λαθος δεν υποστηριζεται εδω και καποια χρονια η swing. 

Για Java GUI καλυτερα σε JavaFx.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
7 λεπτά πριν, Στεφανος123 είπε

Αν δεν κανω λαθος δεν υποστηριζεται εδω και καποια χρονια η swing. 

Για Java GUI καλυτερα σε JavaFx.

δεν ξερω απλα swing δουλευαμε στο μαθημα οποτε εκει το εκανα. (java 8 )

Επεξ/σία από splanis
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...