Sheogorath Δημοσ. 15 Μαρτίου 2015 Δημοσ. 15 Μαρτίου 2015 Ρητορική ερώτηση, αλλά ναι έχεις δίκιο, προφανώς μερικά δεν μπορούμε να τα αποφύγουμε. Δεν έχω προσωπική εμπειρία γιατί έμαθα the hard way... On topic και πάλι, με την εργασία τι έγινε? (Γιατί χαθήκαμε σε αυτήν την κουβέντα )
defacer Δημοσ. 15 Μαρτίου 2015 Δημοσ. 15 Μαρτίου 2015 Φυσικά και έχεις προσωπική εμπειρία, εκτός αν π.χ. έμαθες πρώτα introsort και μετά bubble/insert/selection. Που δε νομίζω ότι έγινε έτσι.
Sheogorath Δημοσ. 15 Μαρτίου 2015 Δημοσ. 15 Μαρτίου 2015 Εδώ πάνω έμαθα C και Matlab μέσα σε ένα τρίμηνο, και αλγόριθμους βελτιστοποίησης και πολυπλοκότητα αν θυμάμαι καλά μέσα στο επόμενο 3-μηνο (λέγεται εξάμηνο αλλά τα μαθήματα είναι πρακτικά τρίμηνα (11 βδομάδες)) Ανάλογα την σχολή και τον άνθρωπο. Ηταν ζόρι ήταν αγγούρι αλλά έπρεπε, +1 γιατί γούσταρα το μάθημα σαν γνώση. Γινεται σαν πλάκα. Αν το πάρεις σαν χόμπι η βελτίωση στην ταχύτητα ενός προγράματος είναι το καλύτερο σημείο, χώρια που κάνεις "κόντρες" με άλλους "τρελούς"
defacer Δημοσ. 15 Μαρτίου 2015 Δημοσ. 15 Μαρτίου 2015 Μην το πάρεις στραβά αυτό αλλά... θα μεγαλώσεις και συ Αυτό που μπορείς να κάνεις όμως από τώρα είναι να χαλιναγωγήσεις λίγο την εντύπωση που έχεις για τον εαυτό σου. "Έμαθα C και Matlab σε 3 μήνες" => όποιος όντως ξέρει C ή/και Matlab πεθαίνει στα γέλια. Για κάποιον ορισμό του "ξέρει".
Sheogorath Δημοσ. 15 Μαρτίου 2015 Δημοσ. 15 Μαρτίου 2015 Γράψε λάθος . I got familiar με το Matlab και την C (κυρίως Matlab) μέσα σε τρεις μήνες, φυσικά έχω μαθει τόσα απο τότε. Αλλά η όλη πλάκα με την βελτιστοποίηση άρχισε νωρίς. Σαν χόμπυ. Για αυτό δεν μπορώ να μιλήσω αντικειμενικά! 1
migf1 Δημοσ. 16 Μαρτίου 2015 Δημοσ. 16 Μαρτίου 2015 Δεν γίνεται να το κάνουμε χωρίς να ενδιαφέρει τη λογική μας το πλήθος των ψηφίων ? Αν είναι ζυγά θα είναι συμμετρικά οπότε και πάλι δεν θα είναι η ίδια λογική ? Ο παρακάτω κώδικας δεν είναι και ο πιο γρήγορος αλλά εξηγεί αυτό που λέω: #include <stdio.h> #include <string.h> void incpalindrome(char *s) { int i; int len; len = strlen(s); for (i = (len + 1) / 2; i > 0; i--) { /* Auksanoyme to 'messaio' pshfio */ s[i - 1]++; /* Thetoume tin idia timi kai sto summetriko tou to opoio * an milame gia mono arithmo pshfion 8a einai to idio pshfio * opote h ana8esh einai axrhsth alla glytonoyme to if * kai exoume idia logiki gia oles tis periptoseis */ s[len - i] = s[i - 1]; /* An to pshfio meta tin auksisi einai mexri kai 9, tote * den xreiazomaste tipota allo opote pairnoyme dromo */ if (s[i - 1] <= '9') return; /* An to pshfio perase to 9 shmainei oti ftasame sto telos * opote prepei na ksanamidenisoyme to paron pshfio * kai na auksisoume to/ta pshfia pou briskontai pio ekso. * Auto 8a ginei stin epomeni ektelesi toy for */ s[len - i] = s[i - 1] = '0'; } /* Gia na ftasoyme edo shmainei oti eimaste sto telos ths seiras * kai prepei na aneboume arithmo pshfion. Gia paradeigma exoyme * ton arithmo 999 o opoios meta to parapano for 8a exei ginei 000. * O protos palindromikos arithmos me 4 pshfia einai 1001 opote * allazoyme to proto pshfio toy 000 se 1 kai prosthetoyme akomi ena * asso sto telos pano sto teliko \0, mh ksexnontas fusika na baloyme * ena teliko \0 oste na exoyme sosto string */ s[0] = s[len] = '1'; s[len + 1]='\0'; } int main(void) { char s[30] = "0"; int n = 0; while (n < 300) { incpalindrome(s); printf("%s\n",s); n++; } return 0; } Έξοδος: 1 2 .. 9 11 22 .. 88 99 101 111 .. 191 202 .. 989 999 1001 1111 .. 9999 10001 10101 .. 10901 11011 .. 20002 20102 Ναι, μια χαρά κώδικας είναι. Εγώ όταν έκανα το ποστ είχα στο μυαλό μου κάτι πιο συμβατικό, που δουλεύει μονάχα με μονό πλήθος ψηφίων: ... int main( void ) { char s[BUFSIZ] = "16061"; for (int i=0; i < 10; i++) { int n = atoi(s); int mid = strlen(s)/2; for (int j=1; j < mid+1; j++) s[mid+j] = s[mid-j]; int m = atoi(s); sprintf( s, "%d", (m > n) ? m : n + (int)pow(10,mid) ); puts(s); } return 0; }
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα