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

Stavros_Ribo

Members
  • ΜΗΝΥΜΑΤΑ FORUM

    447
  • ΜΕΛΟΣ

  • ΤΕΛ. ΕΠΙΣΚΕΨΗ

Σχετικά με Stavros_Ribo

  • Ημερομηνία γέννησης 04/07/1992

Πληροφορίες προφίλ

  • Φύλο
    Άνδρας

Stavros_Ribo's Achievements

Proficient

Proficient (10/15)

  • Πρώτο Μήνυμα
  • Collaborator
  • 1 Εβδομάδα Μετά
  • Ένα Μήνα Μετά
  • 1 χρόνο Insomniac

Πρόσφατες Διακρίσεις

1

Φήμη

  1. ΟΚ λοιπόν, αν κατάλαβα σωστά, αν η είσοδος του αλγορίθμου σου είναι ένας πίνακας 2 διαστάσεων τότε για να διαβάσεις τα στοιχεία του πίνακα θα χρειαζόσουν γραμμικό χρόνο ως προς τα στοιχεία του πίνακα, συμφωνώ. Στο παράδειγμά σου όμως: If we have 2 nested loops, for(j=0;j < n;j++) for(i=0;i < n;i++) {statements;} then we have n repetitions of an O(n) sequence .so the complexity is n*O(n) which is O(n2) και γενικώς στη σελίδα που έδειξες η πολυπλοκότητα υπολογίζεται πάντα ως προς το n, άρα σωστά η πολυπλοκότητα είναι O(n^2). Μέσα στα 2 Loops του παραδείγματος λέει statements, άρα π.χ. θα μπορούσες να έχεις χ=χ+1. Αν η αρχική τιμή του χ ήταν 0, το παράδειγμα είναι σαν να σε ρωτάει τι τιμή θα εχει στο τέλος των loops η μεταβλητή χ. Συμφωνώ απολύτως, γιατί αν σε εμφωλευμένο loop διαβάζεις τα στοιχεία ενός 2-διάστατου πίνακα που σου έχει δωθεί ως είσοδος, η πολυπλοκότητα θα είνα γραμμική.
  2. Ναι οκ, η πολυπλοκότητα παντως δεν μετριέται σε seconds Στο παράδειγμά μου πάντως, το πλήθος πράξεων που θα κάνει θα είναι n^2, ενώ στο δικό σου 16. Η ασυμπτοτική πολυπλοκότητα τώρα, θα είναι Θ(n^2) ως προς n, αλλά νομίζω πως οκ, μπορείς να πεις και γραμμική ως προς το συνολικό πλήθος στοιχείων του πίνακα. Δεν ξέρω αν σε καλύπτει αυτό που λέω, αλλά η πολυπλοκότητα ορίζεται ως προς κάτι. O(n^2)=O("συνολικό πλήθος στοιχείων του πίνακα") στο παράδειγμά μου.
  3. Σωστά, αυτό όμως νομίζω πως έχει να κάνει ως προς τι μετράς την πολυπλοκότητα. Αν για παράδειγμα στο παράδειγμά σου αντί για 4 είχες n τότε: for(i=0; i<n; i++) for(j=0; j<n; j++) array[i][j] = some_value; αυτό θα λέγαμε ότι έχει τετραγωνική πολυπλοκότητα(ως προς το n, O(n^2)), αλλά απ την άλλη, μπορείς να πεις και γραμμική πολυπλοκότητα ως προς το συνολικό πλήθος των στοιχείων του πίνακα.
  4. Το τρέχεις σε DEV C++ στα windows τον κώδικα; Ο κώδικας δεν έχει πρόβλημα, πριν το return 0; βάλε ενα scanf κάποιου π.χ. ακεραίου ή καλύτερα κάνοντας #include<stdlib.h> στην αρχή του προγράμματος γράψε πριν το return 0; system("pause");
  5. Σόρρυ ρε φίλε αλλά δεν είναι λίγο περίεργο αυτό που γίνεται;; Από τη μία ανακαλύπτουν την marymarymary και ξαφνικά εμφανίζεται άλλος που γράφει το 1ο μήνυμα σήμερα και ενδιαφέρεται για τις ασκήσεις; Δηλαδή υπάρχει και μία λογική... Μήπως από πίσω είναι το ίδιο άτομο;;; λέω εγώ τώρα.... Μπορεί να κάνω λάθος.... γράφετε και οι 2 χωρίς τόνους
  6. Αν και δεν ξέρω την ηλικία σου, http://ischool.e-steki.gr/ και για ασκήσεις σε πανεπιστημιακό και μη επίπεδο www.mathcom.gr Όσο για ασκήσεις, με μία αναζήτηση στο google θα βρεις πάρα πολλές, π.χ. στην Ελληνική μαθηματική εταιρία
  7. Stavros_Ribo

    είναι heap tree?

    Αν και δεν πολυκαταλαβαίνω τι ακριβώς ζητάς, αυτό το δένδρο δεν είναι σωρός μεγίστων (ή ελαχίστων)... με μερικές αλλαγές όμως, μπορεί να γίνει.
  8. Αν και δεν εμφανίζει σφάλμα: strcpy( name2, name ); εδώ πιστεύω πως ο compiler σε βοηθα να εκτελεστεί η εντολή αφού ίσο δεσμεύει παραπάνω μνήμη για να αντιγράψει τα strings. Κάτι ίσως πιο σωστό: #include <cstdlib> #include <iostream> #include <cstring> using namespace std; int main(int argc, char *argv[]) { char const * name = "Hello, World"; cout << name << " _:_ " << strlen ( name ) << endl; char *name2 = new char[5]; strncpy( name2, name, 5); cout << name2 << " _:_ " << strlen( name2 ) << endl; // system("PAUSE"); return EXIT_SUCCESS; } Δεν είμαι σίγουρος αν ζητάς αυτό... edit: /* Με πρόλαβε ο migf1 */
  9. Με την εντολή a = new float *[rows]; ουσιαστικά δεσμεύεις χώρο για έναν πίνακα τύπου pointer σε float, μεγέθους rows. Δηλαδή κάθε κελί του πίνακα θα είναι ένας pointer σε float. Και με την εντολή a = new float[cols]; δεσμεύεις χώρο για κάθε έναν από τους προηγούμενους pointers σε έναν float πίνακα μεγέθους cols. Γενικά στη C/C++ οι 2-διάστατοι (και αντίστοιχα οι d-διάστατοι) αποτελούνται από μονοδιάστατους πίνακες. Για παράδειγμα οι 2-διάστατοι πίνακες αποτελούνται από έναν μονοδιάστατο που το κάθε κελί του είναι ένας άλλος μονοδιάστατος πίνακας. Έτσι γίνεται και στην παραπάνω δημιουργία.
  10. Αυτό ακριβώς. Υπάρχει σε πολλά μαθηματικά και μη forums, απλά προσπαθώ να σκεφτώ αν θα ήταν τόσο χρήσιμο στο insomnia. Μία στις τόσες όμως ίσως χρειαστεί, και δεν νομίζω ότι θα ήταν τόσο δύσκολο να μπει μία τέτοια επιλογή.
  11. Όσο για την πολυπλοκότητα νομίζω: Αν πάρουμε σαν βασική πράξη την param1[j] > param1[z], τότε: O(param22) i<=param2-1...............j<i Σ(..................Σ(O(1)........) = ... = O(param22) i=1...........................j=0 (Δεν μπορούμε να γράψουμε σε LATEX ......?)
  12. Αν κι έχεις κάνει κάποια σοβαρά λάθη, εννοείς κάτι τέτοιο? : >void word_histogram(char document_table[][M],int size){ int c,x=0, freq[9],i; char *pch; pch=NULL; for(c=0;c<9;c++) freq[c]=0; for(i=0;i<size;i++){ pch=strtok(document_table[i]," "); while (pch!=NULL) { c=strlen(pch); freq[c-1]++; pch=strtok(NULL," "); } } printf("word zize.......frequency"); for(c=0;c<9;c++){ printf("%d.....",freq[c]); for(x=0;x<=freq[c];x++) printf("*"); printf("/n"); } }
  13. Stavros_Ribo

    c απλη απορία

    Αν αλλάξεις το unsigned int i, σε int i θα τρέξει.
  14. Stavros_Ribo

    c απλη απορία

    Αν έχεις κάνει #include<string.h> θα πρέπει να δουλέψει. Καλύτερα βάλε for(i=strlen(ch)-1;i>=0;i--) γιατί μετράμε από το 0.
  • Δημιουργία νέου...