begin process at 2010 09 06 03:01:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths

 > CARRÉS MAGIQUES, UN DÉFI RÉCURSIF

CARRÉS MAGIQUES, UN DÉFI RÉCURSIF


 Information sur la source

Note :
Aucune note
Catégorie :Maths Niveau :Expert Date de création :01/08/2002 Date de mise à jour :01/08/2002 21:20:22 Vu / téléchargé :7 085 / 259

Auteur : bestmomo

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

J'avais écrit, il y a maintenant longtemps, un programme de calcul de carrés magiques et d'animation sur mon Apple IIe ! J'ai eu envie de m'y remettre avec des moyens technologiques plus évolués...
Pour ceux qui ignorent ce qu'est un carré magique : il s'agit d'un carré comportant un certain nombre de cases avec un nombre par case en utilisant les nombres de un jusqu'au nombre total de cases. Pour que le carré soit magique il faut que la somme (somme magique) des lignes, colonnes et diagonales soit identique. Pourquoi magique ? Tout simplement parce que ces carrés sont utilisés dans des rituels plus ou moins sulfureux et sont censés posséder des pouvoirs...
Je me suis dit qu'avec la puissance de calcul de ma machine il suffisait d'analyser toutes les permutations et de déterminer ainsi facilement la nature magique des carrés calculés. Tout allait bien pour l'ordre 3 (l'ordre est le nombre de cases d'un côté du carré), mais à partir de 4 le nombre de permutations devient indécent et il aurait fallu à peu près deux siècles pour achever le calcul... Un peu trop long pour moi...
Alors j'ai revu ma copie et j'ai commencé par déterminer les séries de nombres satisfaisant la somme magique. Ensuite je calcule les permutations de ces séries, ce qui constitue des groupes, enfin je combine ces groupes entre eux en envisageant toutes les permutations. Pour l'ordre 4 je passe ainsi de 2 siècle à une douzaine de jours sur un celeron 400. Pour l'ordre 5 je n'ai pas osé lancer le calcul...
La base jointe au programme a été constituée en 4 jours. Elle comporte tous les carrés d'ordre 3 et à peu près un tiers des carrés d'ordre 4. Pour ceux qui veulent continuer le calcul faut pas vous gêner...
Pour la présentation des carrés j'ai créé deux contrôles : le premier avec les nombres dans des labels, le second représente graphiquement le carré en reliant tous les nombres de 1 au dernier.
Je pense qu'il y a moyen d'optimiser le calcul et je suis preneur pour toute suggestion dans ce sens.
Merci à seyev pour sa jolie classe pour les permutations, j'ai juste dû l'adapter un peu pour qu'elle digère des nombres.
Le but final de la manoeuvre est l'aspect graphique avec la création de jolis motifs. Si des demandes vont dans ce sens je pourrai améliorer cet aspect avec quelques délires graphiques...  



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) ADO.NET ET ACCESS POUR LA GESTION DE DOCUMENTATION (VERSION ...
Source avec Zip Source .NET (Dotnet) DATAGRID ET MODIFICATIONS SYNCHRONISÉES
Source avec Zip Source avec une capture Source .NET (Dotnet) DBTABCONTROL : UN CONTRÔLE HÉRITÉ DE TABCONTROL POUR AFFICHE...
Source avec Zip Source .NET (Dotnet) DBTREEVIEW : UN CONTRÔLE TREEVIEW AVEC LIAISON DE DONNÉES
Source avec Zip Source .NET (Dotnet) OPENFILEDIALOG ET SAVEFILEDIALOG FACILES

 Sources de la même categorie

Source avec Zip Source avec une capture COLORATION DE GRAPHE par ynabid
Source avec Zip Source avec une capture LES FILTRES RLC SOUS DELPHI 7 par ccllee
Source avec Zip CALCUL D'APRES UN TEXTBOX par lololilizozo
Source avec Zip Source avec une capture BASE DE DONNÉES DE NATURES ALGÉBRIQUES EN C++ par BOLLOTD
Source avec Zip Source avec une capture Source .NET (Dotnet) CLSFRACTION, UNE CLASSE VB.NET GÉRANT LES FRACTIONS. par ghuysmans99

Commentaires et avis

Commentaire de Alain Proviste le 01/08/2002 22:38:23 administrateur CS

Ah salopard ( sans vouloir t'insulter et en toute sympathie ) j'étais en train de le faire. Traître.

Bon je vais me taire et regarder le travail.

Commentaire de Alain Proviste le 01/08/2002 22:42:39 administrateur CS

J'suis désolé j'arrive pas à le faire marcher :(
J'ai un ole manquand donc les recordset fonctionnent pas...
J'vais essayer de voir, en plus c'est dommage le code à l'air super.

Commentaire de Alexo le 02/08/2002 01:29:12

Un copain m'a demandé de lui faire ce prog. j'ai fait en vba sur access, c'été trop lent, j'ai fait la même chose en une 10éne de requete sql et en env. 1 heure (sur Amd xp 2Ghz 256Mo) j'ai eu 7040 carré 4x4 magico, toutes les solus en 6x6 = env. 120ans en prenent en compte la loi de moore. si tu veux je t'envoye le fichier mdb.
J'ai pas compris le lien Graphique que tu as fait.

Commentaire de bestmomo le 02/08/2002 18:30:40

Il faut installer MDAC (au moins 2.5) pour que ça marche mon pauvre Alain !
OK Alexo pour le fichier mdb. Le lien graphique c'est juste relier les points de 1 au dernier...

Commentaire de Alain Proviste le 02/08/2002 21:06:40 administrateur CS

Et où donc puis-je me procurer MDAC ? ( et accesoirement à quoi ça sert ? )

Commentaire de bestmomo le 03/08/2002 17:55:34

MDAC on le trouve chez Monsieur Bill, il est aussi sur le CD Code-Sources !!!
Il est aussi sur les SP de VB.

Commentaire de Alain Proviste le 04/08/2002 22:06:51 administrateur CS

autant pour moi

Commentaire de Alexo le 05/08/2002 11:16:02

BestMomo je t'es envoyé le 3x3 et le 4x4, internet ne marché pas Samedi donc j'ai passé ma journé a optimiser et je suis déssendu sous la barre des 40Min.
amuse toi bien. Je ne sais pas si il y a un interet a le mettre dispo sur le site.

Commentaire de Voodoo le 27/12/2002 00:31:56

Je peux meme pas faire afficher la fenetre FRMMain, y me sort une division par zéro :(
help !

Commentaire de JoVB le 29/11/2003 12:37:14

idem... marche pas : plein d'error au chargement et division par 0 => ca plante

Commentaire de bestmomo le 29/11/2003 20:27:55

Bizarre, bizarre... chez moi tout tourne au poil ! frmMain contient des contrôles utilisateurs mais normalement tout y est ! Je vais quand même vérifier le ZIP...

Commentaire de LSpion le 16/03/2006 16:26:51

Sympathique...
mais si vous voulez de la vitesse, je ne saurais vous conseiller d'autres langages (même si on est sur vbfrance...). Parce-que je ne pense pas que VBA soit fait pour le calcul haute performance...

Je l'ai fait en C...
et je mets environ 20 minutes pour les carrés 4x4...
puis je l'ai fait en ADA...
et je mets 15~20 minutes en faisant du calcul parallèle avec des tàches ADA.
... le tout sur un AMD 3200+ barton sous linux (autre inconvénient du VBA)


... j'aurais plus vu ce "topic" sur cppfrance...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,058 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales