Graphes en C
Dernière réponse : dans Programmation
Bonjour à tous,
Je cherche à savoir comment on peut écrire une fonction en C, générant de manière aléatoire, un graph à n sommets et m arcs ??
Merci d'avance.
Je cherche à savoir comment on peut écrire une fonction en C, générant de manière aléatoire, un graph à n sommets et m arcs ??
Merci d'avance.
Autres pages sur : graphes
Lassé par la pub ? Créez un compte
J'utilise TcWin45 comme compilateur mais je n'ai jamais utilisé la librairie graphique ! (Celle que j'ai s'appelle graphics.h)
C'est un projet en sciences-mathématiques mais ce que je demande n'est pas le quart de ce que je dois faire...
J'aimerai juste savoir déjà comment on programme un graphe (surtout aléatoire) pour commencer..
Merci.
C'est un projet en sciences-mathématiques mais ce que je demande n'est pas le quart de ce que je dois faire...
J'aimerai juste savoir déjà comment on programme un graphe (surtout aléatoire) pour commencer..
Merci.
Graphics.h: je connais pas ce fichier header, donc la dessus je peux pas t'aider.
Citation :
C'est un projet en sciences-mathématiques mais ce que je demande n'est pas le quart de ce que je dois faire...Tu nous demande quand même de faire une partie de ton boulot là :-)
Pour un graphe, je pense que tu pourrais représenter les points par leur coordonnées dans une structure, par exemple:
typedef struct point
{
int x,y;
} point;
tu pourrais donc t'en servir pour connaitre la coordonnée x et y d'un point en ayant son numéro:
exemple d'utilisation:
point Sommet[1];/*exemple avec un point; le point 0*/
Sommet[0].x=/*coordonnée x du point 0*/10;
Sommet[0].y=/*coordonnée y du point 0*/20;
Ensuite tu pourrais représenter les arètes par un tableau à deux dimensions, ou tu mettra 0 si il n'y a pas d'arete entre deux points et 1 sinon;
int G[2][2];
G[0][1]=1;/*supposons que il y a une arete entre le point 0 et le point 1*/
Donc là déja, si jme suis pas trompé, tu peux représenter un graphe dans la machine... Apres pour le dessiner c'est facile.
C'est ce que tu voulais savoir?
Sois précis :-)
Désolé, c'est vrai que je demande de faire une partie du boulot (car le projet est très complexe).
Cependant, je ne sais même pas comment dessiner un graph à l'écran ou encore ce qu'est une structure !
Ma question se porte donc sur l'existence de commandes permettants de créer des graphes aléatoires en C ou encore de compter le nombre de cycles dans de tels graphes,...
Merci pour ses précisions.
Cependant, je ne sais même pas comment dessiner un graph à l'écran ou encore ce qu'est une structure !
Ma question se porte donc sur l'existence de commandes permettants de créer des graphes aléatoires en C ou encore de compter le nombre de cycles dans de tels graphes,...
Merci pour ses précisions.
Citation :
Cependant, je ne sais même pas comment dessiner un graph à l'écran Oula. C'est embêtant. Pour dessiner ton graphe, je pense qu'il suffit de placer tes points et de tracer des traits entre les points possédant une arête... Après, je ne connais pas le contenu de ton graphics.h, donc pour tracer les traits ou autres, je ne peux pas t'aider.
[code]ou encore ce qu'est une structure ![/quote]
Ben je ne maitrise pas trop les structures, alors je vais éviter de te l'expliquer... Mais bon, tu as quand même compris l'emploi que j'en fais?
Sinon, demande et j'essayerais de te renseigner...
Citation :
Ma question se porte donc sur l'existence de commandes permettants de créer des graphes aléatoires en C ou encore de compter le nombre de cycles dans de tels graphes,...
Cherche pas, à moins que tu n'ait ces fonctions dans ton graphics.h, tu va devoir les créer toi même...
Pour créer des graphes aléatoires, sert toi de
rand(); du header stdlib.h (je suppose que tu possède les bibliothèques standards... sinon, tu dois surement en avoir un équivalent quelque part).
Cette fonction renvoie des nombres pseudo-aléatoires; donc tu peux t'en servir pour avoir des coordonnées "aléatoires" pour tes points; et puis tu peux aussi faire de même pour les arêtes, jusqu'à atteindre le nombre d'arètes voulu...
...J'espère que t'a compris... :-D
Oui merci beaucoup !
En fait, j'ai fait de l'analyse numérique (résolution de problèmes mathématiques par ordinateur) et je connais donc les choses utiles en C(tableau,fonction,...).
Rien de très approfondi pour autant !
Ici, c'est une optique différente et faire une fonction qui compte les cycles d'un graph ou créer des fonctions à paramètres additionnels...aucune idée !
Pouurais-tu m'aider sur la syntaxe d'une fonction à paramètre additionnel ?
Quel est l'avantage d'une telle fonction comparer à une fonction classique ?
En fait, j'ai fait de l'analyse numérique (résolution de problèmes mathématiques par ordinateur) et je connais donc les choses utiles en C(tableau,fonction,...).
Rien de très approfondi pour autant !
Ici, c'est une optique différente et faire une fonction qui compte les cycles d'un graph ou créer des fonctions à paramètres additionnels...aucune idée !
Pouurais-tu m'aider sur la syntaxe d'une fonction à paramètre additionnel ?
Quel est l'avantage d'une telle fonction comparer à une fonction classique ?
Citation :
des fonctions à paramètres additionnels...Alors la je vois pas du tout ce dont tu veux parler. Qu'est ce que tu appele par "fonction a paramètres additionnels"? tu veux dire une fonction du type:
void fonction(int arg1, char arg2, int *arg3)
{
/*par exemple...*/
}
c'est à dire une fonction avec des paramètres, que tu appelera ainsi:
fonction(arg1,arg2,arg3);/*encore un exemple*/
Si c'est ca, les avantages se voient tout de suite; tu peux lui passer des arguments et donc la fonction peut resservir à différents moments de l'execution avec un comportement différent...
Lassé par la pub ? Créez un compte