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

akolou8ia simbolwn


nikosfree12

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

Γειά σας.

 

Είναι η πρώτη μου επίσκεψη στο forum και ελπίζω να γίνει το θαύμα και να βοηθηθώ από τις ταλεντάρες του προγραμματισμού και της c - c++.

 

Καθότι οικονομολόγος και όχι προγραμματιστής έχω βρεθεί σε ένα μεγάλο αδιέξοδο.

 

Έχω ένα σύνολο συμβόλων. Ας πούμε S όπου μέσα σε αυτό υπάρχουν 3 ή όσες θέλετε υποομάδες δηλαδή S=((a,-b,-g),(b,d),(-a,-d)).

Θέλω ένα προγραμματάκι το οποίο να κάνει το εξής

1)(α,-b,-c)

2)(b,d)

apotelesma K1=(a,-c,d) Δηλαδή έφτιαξα ένα νέο΄υποσύνολο το οποίο δημιουργήθηκε διαγράφοντας το b και το -b

1)(α,-b,-c)

3)(-a,-d)

apotelesma K2=(-b,-c,-d) Δηλαδή έφτιαξα ένα νέο΄υποσύνολο το οποίο δημιουργήθηκε διαγράφοντας το a και το -a

2)(b,d)

3)(-a,-d)

apotelesma K3=(b,-a) Δηλαδή έφτιαξα ένα νέο΄υποσύνολο το οποίο δημιουργήθηκε διαγράφοντας το d και το -d.

Τέλος το αποτέλεσμα που θα πρέπει να παίρνω να είναι Σ=SVK1VK2VK3

Το V σημαίνει ένωση.

Το μεγάλο ερώτημα είναι οτι θα ήθελα το προγραμματάκι αυτό να είναι δυναμικό. Δηλαδή τι θα γίνεται σε περιπτώσεις περισσότερων υποσυνόλων.

Όποιος μπορεί να με βοηθήσει θα το εκτιμούσα πολύ

Σας ευχαριστώ προκαταβολικά

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

Σου εχει δωθει καποιο hint στην εκφωνηση για το πως θα ειναι η αναπαρασταση των συνολων ή για το πως θα δινεται το ινπουτ απο το χρήστη; Εχεις κανει κατι;

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

Οι χαρακτήρες θα είναι απο a εως z και θα παίζουν και οι αρνήσεις τους. Σε κάθε υποσύνολο θα είναι δυνατό να χρησιμοποιείται μόνο μια φορά ο ίδιος χαρακτήρας. Δηλαδή δε θα πρέπει να έχω (a,b,-z,a). Αυτό θα ήταν λάθος.Το βαρύ πρόβλημα είναι πως θα γίνονται οι συνδιασμοί και πως θα διαγράφονται τα αντίθετα. Βέβαια και η αρχή έχει σημασία. Θα πρέπει να βγαίνει ένα text που να λέει βάλε χαρακτήρες πρώτου υποσυνόλου. Αφού βάλω όσους με καλύπτουν χωρισμένους με κόμματα θα πατάω enter και θα βγαίνει δεύτερο text και θα μου ζητάει το ίδιο. Επειδή το μοντέλο θέλω να είναι δυναμικό δηλαδή τι θα γίνεται σε περιπτώσεις περισσότερων υποσυνόλων αφού δηλώσω και τους χαρακτήρες του τελευταίου υποσυνόλου θα πατάω ας πούμε το escape ή το space ή ένα νούμερο...δε με νοιάζει ακριβώς τι... και το προγραμματάκι θα καταλαβαίνει οτι τελείωσα με τα υποσύνολα και θα αρχίζει να κάνει τους συνδιασμούς.

thanx

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

μαλιστα......

αν υποθεσουμε οτι εχεις φτιαξει μια συναρτηση που διαβαζει ενα συνολο πχ read_synolo() μπορεις να πας καπως ετσι

 

>

bool finished_input=false;
int number_of_synola=0;

cout << "Δωσε μας το συνολο: ";

while( !finished_input )
{
    read_synolo();
    number_of_synola++;

    // ρωτα το χρηστη αν θελει να δωσει και αλλο συνολο
    cout << "θελετε να δωσετε και άλλο συνολο? (y/n) ";

    char answer;
    cin >> answer;   // παρε την απαντηση του χρηστη
    
    // αν answer == 'n', τελειωσαμε με τα συνολα και μπορει πλεον να
    // γινει ο υπολογισμος μας.........
    if ( answer == 'n')
          finished_input = true;

    // ....... αλλιως το while μας θα συνεχισει και θα ζητησει το 
    // επομενο συνολο
    
    cout << "Δωσε το επομενο συνολο: ";
}

// αφου βγηκαμε απο το while, ο χρηστης τελειωσε το ινπουτ του 
// και μπορουμε πλεον να υπολογισουμε

calculate_synola();


 

οκ?

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

Diladi ousiastika theleis na ftiakseis mia domi-lista pou na periexei ta yposynola pou exei dwsei o xristis kai sti synexeia me kapoion algorithmo na vriskeis tous syndiasmous kai na afaireis ta omoia h tis arniseis tous, ok? Yparxei enas algorithmos pou mporeis na ylopoihseis, legetai Rete. An einai auto pou thes tote pes mou na sou dwsw leptomereies, h psakse sto google gia Rete Algorithm.

 

Vasika gia na ylopoihseis eukola kai veltista tis diagrafes stoixeiwn prepei na xrisimopoihseis mia algevriki praksi, ti synenwsi (join) dyo sxesewn (sti sygkekrimeni periptwsi dyo yposynolwn). Se auto to simeio se voithaei o Rete. Oso gia tous syndyasmous den einai dyskolo, anathese se kathe yposynolo enan arithmo kai meta pairneis tous syndyasmous ana 2. Px o parakatw aplos kwdikas gia syndiasmous stoixeiwn ana 2 sou kanei:

 

#include <stdio.h>

#include <stdlib.h>

 

int

main(char* argv[], int argc)

{

int* visited;

int i, j, n;

 

n = 3;

 

visited = (int*)malloc(n * sizeof(int));

 

for(i = 0; i < n; ++i) {

visited = 0;

}

 

for(i = 0; i < n; ++i) {

for(j = 0; j < n; ++j) {

if((i != j) && (!visited[j])) {

printf("%d %d\n", i, j);

}

}

}

visited = 1;

}

 

return 0;

}

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

Καταρχήν θα ήθελα να ευχαριστήσω τον georgemarios για τις πολύτιμες πληροφορίες που μου έδωσε.

Όσο για το Rete Algorit. ακούγεται ενδιαφέρον. Αν όντως μου λύσει τα χέρια...Θα ήθελα να μου δώσεις λίγες πληροφορίες για αυτό και πως θα μπορούσα να τον χρησιμοποιήσω αν δε σου είναι δύσκολο.

Τhanx

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

Arxika o Rete Algorithm einai enas pattern matching algorithmos kyriws gia na ylopoieis rule-based systimata (knowledge engineering ktl). Omws me mia apli metatropi tha deis pws tairiazei kai stin periptwsi pou anafereis. Allwste o entopismos kai diagrafi dyo stoixeiwn apo dyo synola pou exoun kapoia sxesi metaksy tous, apotelei meros enos pattern matching algorithmou. Isws na se dyskolepsei ligo h ylopoihsi, alla an exeis kales gnwseis programmatismou tha to kseperaseis. Gia perissotera des sta parakatw links http://www.cis.temple.edu/~ingargio/cis587/readings/rete.html kai http://aaaprod.gsfc.nasa.gov/teas/Jess/JessUMBC/sld008.htm

 

Mporei na sou einai ligo dysnoitos stin arxi, wstoso einai enas veltistos tropos gia na ylopoihseis tin enwsi (join) pou xreiazesai gia to matching pou thes. An exeis kapoia aporia pes mou.

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

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

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