Accueil > Forum > > > > Comment calculer des combinaison
Comment calculer des combinaison
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ée 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
|
Derniers Blogs
PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2 par ROMELARD Fabrice
Avec la dernière génération du lecteur MP3 de Microsoft, le ZUNE HD, Microsoft a publié une nouvelle version du logiciel pour PC. Ainsi, je me suis décidé à installer celle-ci sur mon Tablet PC ACER, comme toujours le logiciel est donc tél...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit
Forum
RE : DELPHIRE : DELPHI par overtaker
Cliquez pour lire la suite par overtaker RE : DELPHIRE : DELPHI par rt15
Cliquez pour lire la suite par rt15 DELPHIDELPHI par overtaker
Cliquez pour lire la suite par overtaker
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|