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 !

MA PETITE COMBINE


Information sur la source

Catégorie :Maths Classé sous : math, combinaison, algorithme, stringgrid, memo Niveau : Initié Date de création : 03/08/2008 Date de mise à jour : 03/08/2008 22:45:28 Vu / téléchargé: 4 795 / 270

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Bonjour à tous,

Suite à question posée sur le forum par Frank_klein
(http://www.delphifr.com/infomsg_COMMENT-CALCULER-COMBINAISON_1181081.aspx#17)

Florenth dont les neurones nous étaient revenus en forme et gorgés de soleil m'a pris de vitesse
et a déposé une excellente source sur les liste, arrangements et combinaisons sous le regard du mathématicien.

Moi, j'ai pris mon temps..et j'ai fait la même chose mais sous l'oeil du joueur..

Autrement dit, j'ai laissé tomber les deux premières parties et
me suis attaché à créer la dernière de manière ergonomique.

Il n'y a pas grand chose d'autre à dire sinon que bien sûr, il reste de nombreuses optimisations à réaliser
mais l'objectif ici n'était pas de faire du turbo, mais de donner les bonnes combinaisons de manière agréable.

Evidemment, je rejoins florenth pour dire aussi, que ce programme ne sert pas à grand chose

car vous vous rendrez compte facilement que si on veut jouer les champs complets,
on a vite des problèmes de financement !

Cantador


 

Conclusion

bon jeu quand même !
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

03 août 2008 22:35:02 :
Limitation dans le nombre de numéros sinon ça rame de trop..et mise en place d'un sablier. Correction de la libération de la mémoire?
03 août 2008 22:45:28 :
Suppression de la limite car elle perturbe le programme..

Commentaires et avis

signaler à un administrateur
Commentaire de cantador le 04/08/2008 13:36:06

Merci florenth poour ce sympathique commentaire.
Les performances doivent être sensiblement les mêmes et deviennent franchement dures aux approches de 20..
ce qui est normal..
Dans ce cas, et on veut vraiment obtenir les combins par exemple
de 6 parmi 25, il est préférable d'écrire un programme spécifique
en dur de boucles imbriquées et là le temps est très correct.

Quant aux champs réduits (ah ah !)
ça c'est une autre histoire..

signaler à un administrateur
Commentaire de kopierreko le 29/10/2008 17:30:06

Juste un truc:
Si on sélectionne toutes les cases le log plante :)

signaler à un administrateur
Commentaire de cantador le 29/10/2008 19:04:09

non il ne plante pas, il suffoque..
car factorielle 100, il aime pas du tout...

signaler à un administrateur
Commentaire de kopierreko le 29/10/2008 19:15:56 10/10

ça se comprend ^^

signaler à un administrateur
Commentaire de ludodelphi le 30/10/2008 12:23:26

bonjour,
J'avais en tete un calcul quasi instantanné des combinaisons sur mon vieux PC 1Ghz pour les 14 Millions de combin du fameux 6 parmi 49 (loto)
En regardant la source, j'ai compris pourquoi le programme rame à mourir :
Comme en Matlab, Florenth passe son temps à allouer de la mémoire
Une modif de 2-3 lignes (déplacement allocation mémoire hors de la boucle principale) rend le calcul de combinaisons instantanné. (c'est encore largement optimisable en sortant la deuxieme allocxation mémoire : mais c'est plus compliqué)
Il reste le temps d'affichage qui devient prépondérant...
J'ai mis la nouvelle source à peine modifiée à disposition sous mon nom ;-)

LudoDelphi

signaler à un administrateur
Commentaire de cantador le 30/10/2008 14:57:38

@ludodelphi :

pour les combins du LOTO : 1 minute !

procedure TForm1.Button1Click(Sender: TObject);
var
  i, j, k, l, m, n, nob, cpt: integer;
  sl: TStringList;
begin
  try
    Screen.Cursor := CrHourGlass;
    cpt := 0;
    nob := 49;
    sl := TStringList.Create;
    for i := 1 to nob do
      for j := i to nob do
        for k := j to nob do
          for l := k to nob do
            for m := l to nob do
              for n := m to nob 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
                  inc(cpt);
                  sl.Add(IntToStr(i) + ';' + IntToStr(j) + ';' + IntToStr(k) + ';' +
                    IntToStr(l) + ';' + IntToStr(m) + ';' + IntToStr(n));
                end
                else
                  continue;
  finally
    Screen.Cursor := CrDefault;
    sl.Free;
    showMessage(IntToStr(cpt));
  end;
end;
tu peux les récupérer avant le sl.free par sl.SaveToFile

mais il me semble avoir fait mieux mais je ne trouve plus mon code..

cantador

signaler à un administrateur
Commentaire de ludodelphi le 31/10/2008 14:03:59

On me défie !
J'ai ajouté une version simple à moi "CombinSimple"
On réalise les 14 M(millions) de combine du loto en... Mégarapide !
(essaye, tu me dira)

Elle est récursive, donc encore optimisable, mais me suffit pour mes besoins
... et je suis content de sa rédaction ;-)

++ Ludodelphi

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

algorithme genetique code source [ par nana ] je cherche le code source et le programme d'un algorithme génétique pour le problème de TSP ( de préférence en pascal, delphi, fortran sinon autres la Taille d'un stringgrid [ par padsou ] Salut! J'ai besoin de réduire un stringgrid automatiquement. En fait j'incrémente par programmation le nombre de cases selon le volume des information Fuite mémoire avec StringGrid [ par Stauf ] Bonjour,J'ai le problème suivant:Je crée dynamiquement des données puis libère l'espace une fois affichées. Jusque là, pas de soucis, l'espace est all récuperer les L et C visible à l'écran d'une Stringgrid [ par mik38 ] Bonjour,j'ai créé un composant dérivé de la stringgrid et effectuant un traitement très lourd sur le drawcell.Comment faire pour récuperer seulement l Fonction Undo/Redo Multilevel [ par JuniorFr ] Voila j'ai besoin d'un fonction permettant d'annuler ou rétablir du text dans un memo (comme word). La fonction intégré memo.Undo n'autorise qu'un seu Glissé déposé [ par MasterNKZ ] Salut tout le mondej'essaie de faire un note pad mais je rencontre deja un probléme, je n'arrive pas comme dansle vrai a faire un glissé déposé d'un f Griser les cellules differement d'une StringGrid? [ par bougste ] Bon Voilà mon problème...J'aimerais pouvoir griser certaine cellules de ma stringGrid...mais pas toute....(ou changer de couleur..)...Apparement on ne MEMO [ par intello2001 ] comme sur l'image ci-dessous j'aimerai metre des couleur dans mon memo.(une ligne rouge, une autre bleu par exemple)mais je n'arive qu'a changer la co MEMO [ par intello2001 ] comme sur l'image ci-dessous j'aimerai metre des couleur dans mon memo.(une ligne rouge, une autre bleu par exemple)mais je n'arive qu'a changer la co MEMO [ par intello2001 ] comme sur l'image ci-dessous j'aimerai metre des couleur dans mon memo.(une ligne rouge, une autre bleu par exemple)mais je n'arive qu'a changer la co


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.