|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Comment calculer des combinaison [ Divers / Débutant(e) ] (Frank_klein)
Informations & options pour cette discussion
jeudi 31 juillet 2008 à 12:15:48 |
Comment calculer des combinaison

Frank_klein
|
Bonjour, J'ai cherché sur le forum des exemples sur le calcul des combianaisons, mias sans succès, sur Google aussi, je n'ai trouvé que des exemples en visual basic, est il possible de faire des calculs de combinasion avec delphi, je conais la formule mathematique mais je n'arrive pas à l'appliquer dans le code. Si quelqu'un a une idée, je le remerci d'avance. @+
|
|
|
jeudi 31 juillet 2008 à 13:19:55 |
Re : Comment calculer des combinaison
|
jeudi 31 juillet 2008 à 19:39:52 |
Re : Comment calculer des combinaison

cantador
|
voilà un petit code que j'ai écrit et qui me sers dans mes jeux :
procedure TFMain.Button1Click(Sender: TObject); var i, j, k, l, m, n, nnpg, nnds, sto: integer; COMBI: array[1..28] of string; begin nnds := 8; sto := 0; ListBox1.Clear; for i := 1 to nnds do for j := i to nnds do for k := j to nnds do for l := k to nnds do for m := l to nnds do for n := m to nnds do if ((i <> j) and (i <> k) and (i <> l) and (i <> m) and (i <> n)) and ((j <> i) and (j <> k) and (j <> l) and (j <> m) and (j <> n)) and ((k <> i) and (k <> j) and (k <> l) and (k <> m) and (k <> n)) and ((l <> i) and (l <> j) and (l <> k) and (l <> m) and (l <> n)) and ((m <> i) and (m <> j) and (m <> k) and (m <> l) and (m <> n)) then begin sto := sto + 1; COMBI6[sto] := IntToStr(i) + ';' + IntToStr(j) + ';' + IntToStr(k) + ';' + IntToStr(l) + ';' + IntToStr(m) + ';' + IntToStr(n); ListBox1.Items.Add(COMBI6[sto]); end else continue; end;
A adapter bien sûr..
cantador
|
|
|
jeudi 31 juillet 2008 à 20:21:56 |
Re : Comment calculer des combinaison

Oniria
|
Bonjour,
moi, j'ai fait un petit programme plus universel que voici:
unit test_choix;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; Memo1: TMemo; Button1: TButton; Button2: TButton; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
var nombre : integer; tb,compt: array[0..10] of integer;
Function Choix(n,nb : integer): string; var i,j,sortir,chiffre0 : integer; texte : string; begin texte:=''; chiffre0:=ord('0'); for i:=0 to n-1 do tb[i]:=0; // On efface la réservation de la case if nb=0 then begin // Si nb=0, on veut commencer au début for i:=0 to n-2 do compt[i]:=0; // On choisit la première solution end else begin // nb<>0, on continu depuis la dernière valeur //On ajoute 1 au compteur j:=n-2; sortir:=0; repeat // Gestion de l'addition du compteur compt[j]:=compt[j]+1; if compt[j]>(n-1-j) then begin compt[j]:=0; j:=j-1; end else sortir:=1; until (j<0) or (sortir=1); end; // Sélection des nombres pour la sortie for i:=0 to n-2 do begin j:=0; sortir:=0; repeat if Tb[j]=0 then sortir:=sortir+1; j:=j+1; until (sortir-1)=compt[i]; // j-1 est le nombre choisit texte:=texte+chr(chiffre0+j); tb[j-1]:=1; // le chiffre à été choisit donc il ne sera plus repris end; // On vient de choisir les n-1 termes // On doit maintenant rechercher le seul qui n'a pas été utilisé i:=0; sortir:=0; repeat if tb[i]=0 then begin texte:=texte+chr(chiffre0+i+1); sortir:=1; end else i:=i+1; until sortir=1; Choix:=texte; end;
procedure TForm1.Button2Click(Sender: TObject); begin Form1.Close; end;
procedure TForm1.Button1Click(Sender: TObject); var txt,txt1 : string; begin nombre:=strToint(Form1.Edit1.Text); txt:=Choix(nombre,0); Form1.Memo1.Lines.Add(txt); repeat txt1:=choix(nombre,1); if txt1<>'' then Form1.Memo1.Lines.Add(txt1); until (txt=txt1) or (txt1=''); // Form1.Memo1.Lines.Add('Terminé'); end;
end.
Voila , si ca peut t'aider .
Oniria
|
|
|
jeudi 31 juillet 2008 à 21:16:34 |
Re : Comment calculer des combinaison

Frank_klein
|
je vais essayer de les adapter, je vous tiendrais au courant, merci 
|
|
|
jeudi 31 juillet 2008 à 21:27:22 |
Re : Comment calculer des combinaison

cantador
|
@ Oniria: ton code fonctionne, mais il ne donne pas les combinaisons de x éléments parmi n éléments mais : Les arrangements de X éléments, ce qui est différent.. impec pour jouer au tiercé ! cantador 
|
|
|
jeudi 31 juillet 2008 à 21:35:27 |
Re : Comment calculer des combinaison

Oniria
|
Bonjour,
je crois que je vais devoir retourner à l'école :) Moi et les stats, j'ai vraiment du mal à comprendre. Mais bon quand j'ai fait ce code, j'avais besoin d'un système qui me donne toutes les solutions uniques avec X éléments possibles sans savoir que c'était des combinaisons ou arrangement ou autres...
Désolé, si j'ai confondu les deux. Mais bon si ça peut servir.
Oniria
|
|
|
jeudi 31 juillet 2008 à 21:50:04 |
Re : Comment calculer des combinaison
|
jeudi 31 juillet 2008 à 23:27:31 |
Re : Comment calculer des combinaison

Caribensila
|
Moi, je suis comme Oniria. J'ai toujours eu des difficultés avec ces trucs. :)))
La prochaine fois qu'on en aura besoin, on demandera à Cantador... 
|
|
|
vendredi 1 août 2008 à 09:09:30 |
Re : Comment calculer des combinaison
|
Cette discussion est classé dans : exemples, calculer, combinaison
Répondre à ce message
Sujets en rapport avec ce message
calculer le temps [ par bouiboui ]
Je cherche un moyen de calculer le temps d'exécution d'une procedure en delphi, existe-t-il une fonction permettant de le faire ?(Un Timer est dispo d
Calculer le crc d'un fichier [ par zorg63 ]
Salut!Je voudrais savoir comment calculer le crc d'un fichier pour le comparer à une base de donnees. Comment ce calcul s'effectue-t-il?Merci d'avance
Cherche exemples [ par jbob ]
Bonsoir,Je voudrais me lancer dans laprogrammation de bases de données avec Mysql et delphi.Où pourrais-je trouver des exemples qui m'aiderait forteme
Calculer la bande passante [ par Kane ]
Comment peux t'on mesurer la bande passante de sa connection internet ?Merci bicoup !
Calculer la bande passante [ par Kane ]
Savez comment je peux calculer la bande passante de mon PC ?Pouvez vous m'aider ?Merci
Combinaison de touches vers fonction ou procédure ? [ par japee ]
Quelqu'un peut-il me rappeler la combinaison de touches qui nous amène, dans l'éditeur de code, à partir de l'appel d'une fonction ou d'une procédure,
Mettre à jour une DBGrid1 avec DBGrid2 [ par vdefer ]
Je recherche des exemples pour faire une mise à jour d'une DBGrid à une autre, je sais que l'on utilise DataSet.voila ce que je souhaite faire:Je séle
Application en background en attente d'une combinaison de touches [ par K0rr1gan ]
Bonjour,Je cherche a créer une application se comportant plus ou moins comme un service, c'est a dire en exécution permanente, éventuellement sous for
Comment calculer le nombre de mois séparant deux dates ? [ par Nefret ]
Bonjour, j'aimerai savoir s'il existe un moyen de calculer le nombre de mois qui sépa
Durée d'un mp3 [ par LuckyLuck ]
Alors voilà, je voudrais simplement savoir comment calculer la durée en seconde d'un mp3, en vue de pouvoir calculer le CDDBID d'un album. Je ne deman
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|