freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Αλγόριθμο σε C/c++


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [7 Μηνύματα]      Bookmarks Tags: c Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
billiaswhs


Μέλος από: 11 Νοε 2004
Μηνύματα: 256+

View users profile
blog cv facebook sync twitter friendfeed 
del.icio.us skype 
ΜήνυμαΣτις: 09 Απρ 2005 17:28    Θέμα: Αλγόριθμο σε C/c++ Απάντηση με παράθεση  Mark this post and the followings unread

Γεια σας ψάχνω ένα αλγοριθμο σε C/C++ που απο δέκα στοιχεία να μπορεί να βρίσκει όλες τις δυνατές εννιάδες, οκτάδες , εφτάδες , εξάδες κτλ. Μήπως έχει κανένας υπόψη?

_________________
www.vontikakis.com
www.photoreal.me
softius
Script Master

Μέλος από: 11 Ιαν 2004
Μηνύματα: 241

View users profile Send email to user Visit posters website
ΜήνυμαΣτις: 09 Απρ 2005 20:04    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Μάλλον πρέπει να κάνεις χρήση αναδρομής. Η ιδέα είναι ότι για k-αδα... θα παίρνεις μία-μία τις πιθανές τιμές για την πρώτη θέση και θα τις ενώνεις με μία πιθανή (k-1)-άδα, καλώντας αναδρομικά την ίδια συνάρτηση. Οπότε εκείνη με την σειρά της θα προχωρήσει για την (k-2)-άδα κοκ. Ο αλγόριθμος*:

κώδικας:

void example(int elements, int current, int size, int done, int total) {
  int i;
 
  if ( done == total ) {
    print_array(current);    //mia synarthsh pou typwnei to current
  } else { 
    for ( i=0; i<size; i++ ) {
      current[done] = elements[i];
      example(elements, current, size, done+1, total);
    }
  }
}

* δεν είναι ακριβώς C - οπότε διορθώνεις μερικά πράγματα - συγχώρα με... πάει καιρός να γράψω C
billiaswhs


Μέλος από: 11 Νοε 2004
Μηνύματα: 256+

View users profile
blog cv facebook sync twitter friendfeed 
del.icio.us skype 
ΜήνυμαΣτις: 10 Απρ 2005 20:57    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ψιλο μπερδεύτικα μήπως μπορείς να μου το εξηγήσεις λίγο πιο αναλυτικά?

_________________
www.vontikakis.com
www.photoreal.me
softius
Script Master

Μέλος από: 11 Ιαν 2004
Μηνύματα: 241

View users profile Send email to user Visit posters website
ΜήνυμαΣτις: 10 Απρ 2005 23:28    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Τι δεν κατάλαβες ακριβώς; τον αλγόριθμό (την ιδέα) ή τον κώδικα που έγραψα;
billiaswhs


Μέλος από: 11 Νοε 2004
Μηνύματα: 256+

View users profile
blog cv facebook sync twitter friendfeed 
del.icio.us skype 
ΜήνυμαΣτις: 11 Απρ 2005 00:34    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Την ιδέα.

_________________
www.vontikakis.com
www.photoreal.me
softius
Script Master

Μέλος από: 11 Ιαν 2004
Μηνύματα: 241

View users profile Send email to user Visit posters website
ΜήνυμαΣτις: 11 Απρ 2005 00:54    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Χμμ... ας υποθέσουμε ότι έχεις τα στοιχεία 1,2,3,4 και θες να βρεις όλες τις πιθανές τετράδες. Η ιδέα είναι παρόμοια με την διαδικασία που θα ακολουθούσες αν το έκανες με το χέρι. Πρώτα δηλαδή παίρνεις ένα αριθμό από την λίστα και μετά ψάχνεις για τις πιθανές τριάδες. Μπροστά από κάθε τριάδα αν προσθέτεις τον αριθμό που πήρες από την λίστα, θα έχεις μία πιθανή τετράδα, σωστά;

Το ίδιο θα συμβεί και στην τριάδα... θα πάρεις ένα-ενα τα πιθανά στοιχεία και για το καθένα θα προσθέτεις μπροστά από κάθε πιθανή διάδα κοκ. Αυτό θα συμβαίνει μέχρι η αναδρομή να μην πρέπει να πράξει για άλλη k-άδα. Οπότε σε αυτό το σημείο έχεις δηλαδή ένα πιθανόν συνδιασμό. Αν σε βοηθά το ouput του προγράμματος θα είναι:

κώδικας:
11111
11112
11113
11114
11115
11121
11122
[...]


Τα στοιχεία θα επιλέγονται με τον ακόλουθο τρόπο:

κώδικας:
1
  1
    1
      1
        1
        2
        3
        4
        5
      2
        1
        2
        3
        4
        5
[...]


Αν δεν έχεις ξαναχρησιμοποιήσει αναδρομή, καλό θα ήταν να δεις κάποιο παράδειγμα
billiaswhs


Μέλος από: 11 Νοε 2004
Μηνύματα: 256+

View users profile
blog cv facebook sync twitter friendfeed 
del.icio.us skype 
ΜήνυμαΣτις: 11 Απρ 2005 02:10    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ok thanks

_________________
www.vontikakis.com
www.photoreal.me
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [7 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
ενας κωδικας σε C που βγαζει μη αναμενομενο αποτεσμα 1 teresa92 13 Αυγ 2016 21:26
teresa92 Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 22 Ιαν 2017 20:14 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos