FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Bataille navale SM
Le problème des 8 dames Emptypar jjn4 Aujourd'hui à 17:39

» Une calculatrice en une ligne de programme
Le problème des 8 dames Emptypar jean_debord Aujourd'hui à 8:01

» Gestion d'un système client-serveur.
Le problème des 8 dames Emptypar Pedro Hier à 19:31

» Les maths du crocodile
Le problème des 8 dames Emptypar jean_debord Hier à 10:37

» Naissance de Crocodile Basic
Le problème des 8 dames Emptypar jean_debord Hier à 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Le problème des 8 dames Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Le problème des 8 dames Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Le problème des 8 dames Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Le problème des 8 dames Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Le problème des 8 dames Emptypar leclode Dim 21 Avr 2024 - 18:09

» trop de fichiers en cours
Le problème des 8 dames Emptypar Marc Dim 21 Avr 2024 - 2:41

» 2D_fill_color(résolu)
Le problème des 8 dames Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Le problème des 8 dames Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Le problème des 8 dames Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Le problème des 8 dames Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -50%
-50% Baskets Nike Air Huarache Runner
Voir le deal
69.99 €

 

 Le problème des 8 dames

Aller en bas 
5 participants
AuteurMessage
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Le problème des 8 dames Empty
MessageSujet: Le problème des 8 dames   Le problème des 8 dames EmptyJeu 10 Mai 2012 - 15:21

Salut à tous

Au début des années 1980, j’ai trouvé (je ne me rappelle plus dans quel magasine ou quel live) un algorithme qui permettait de trouver la solution à un très vieux problème : celui des 8 dames qui s’énonce ainsi :
Sur un échiquier de 8 X 8 cases, de combien de façons peut-on disposer 8 dames sur cet échiquier, de telle sorte qu’aucune des 8 dames ne soit menacée par l’une quelconque des 7 autres dames ? C’est-à-dire telle qu’il y ait une dame et une seule dans chaque ligne, dans chaque colonne et dans chaque diagonale.
Ce problème a été posé au milieu du XIXème siècle. A cette époque, même le grand génie Carl Friedrich Gauss (mathématicien, astronome et physicien allemand) ne trouva « que » 72 solutions, alors qu’il existe en réalité 92 !

J’ai trouvé cet algorithme génial de part sa concision. Je l’ai transformé en un programme Basic qui tournait sur mon Apple II dont j’étais fier. C’était, dis-je, au début des années 1980 (A cette époque, JICEHEL était en CM1 ou peut-être en CM2 ! En fait, à quelle classe étais-tu ?). Cool

Ces derniers jours, en cherchant un papier dans mes archives, j’ai trouvé dans un grand cahier où je notais mes programmes, le programme des 8 dames (à cette époque je ne possédais pas d’imprimante). Je l’ai donc adapté en PANORAMIC et il tourne correct.

En réfléchissant maintenant un peu (et même beaucoup) à ce genre de problème, il m’a semblé qu’il n’est pas aussi simple que l'on pense.

Alors mon programme (dont l’algorithme, je précise bien, n’est pas le mien) ne sera mis sur le Forum que dans 24 heures environ. Je laisse donc le temps à ceux qui veulent y réfléchir. C’est un bon exercice de programmation. Vous trouverez certainement des solutions inédites (ou même tordues!).

Il ne s’agit nullement d’un concours de programmation. Il n’y aura aucun prix si ce n’est la satisfaction d’avoir résolu un problème ! Et c’est déjà beaucoup !

!!!! ALORS A VOS CLAVIERS !!!!

lol! lol!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames EmptyJeu 10 Mai 2012 - 16:19

Je ne participerais pas, ma femme a perdu son grand-père hier et nous partons en Bretagne demain pour l'enterrement ce week-end ... Désolé ... (Mais de toute façon, il aurait fallu que je réfléchisse et ce n'était pas gagné Wink )
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames EmptyJeu 10 Mai 2012 - 16:40

Je suis vraiment désolé, Jicehel !
Toutes mes condoléances!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
bignono

bignono


Nombre de messages : 1127
Age : 66
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames EmptyVen 11 Mai 2012 - 11:02

Très intérressant ce problèmes des 8 dames! Bon j'ai pas vraiment envi de me casser le ciboulot, alors je viens de faire un tour vite fait sur google en tapant dans le moteur de recherche "les 8 dames" et je me suis retrouvé sur wikipédia, qui dit bien qu'il y a 92 solutions au problème et que le génial Gauss s'était attelé au problème. Un passage nous éclaire sur la façon de procéder en informatique et que l'algorithme de la programmation par contraintes serait le mieux adapté au problème.
Par contre j'ai été surpris de voir qu'il existait également d'autres problèmes qui me paraissent aussi intéressant: les 32 cavaliers, les 14 fous, les 16 rois et aussi les 9 dames avec 1 pion!
Je crois qu'il y a matière à cogiter et à attrapper un mal de crâne drunken confused épouvantable là! lol!
A bientôt Wink
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames EmptyVen 11 Mai 2012 - 12:31

La programmation par contraintes, je ne la connais pas !

Le programme que je posterais ce soir, utilise un algorithme étonnamment simple et que je trouve génial !
Laughing
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames EmptyVen 11 Mai 2012 - 18:19

Salut tout le monde.

Comme promis, je publie mon programme des 8 dames.
Les solutions affichées à l’écran sont sous forme de 8 chiffres (de 1 à 8 ).

Exemple : la solution 15863724.
Cette solution est représentée par la permutation (1, 5, 8, 6, 3, 7, 2,4). C’est sous cette forme que les solutions sont affichées.

Ceci doit être interprété ainsi :
Chaque chiffre représente la ligne où une dame se trouve, la colonne étant le numéro d’ordre dans la permutation.
C'est-à-dire (dans l’ordre des colonnes 1, 2, 3, 4, 5, 6, 7,8 ), les dames sont placées en
Ligne 1
Ligne 5
Ligne 8
Ligne 6
Ligne 3
Ligne 7
Ligne 2
Ligne 4.

Il ya, en tout, 92 solutions.
On remarque que 2 solutions sont équivalentes si elles se déduisent l’une de l’autre par rotation ou par symétrie.

Le groupe des isométries du carré a 8 éléments. Donc les solutions sont, en principe groupées par familles de 8 solutions équivalentes. Il ya ainsi 12 familles de solutions. Or, 12 x 8 = 96 et non 92 ! Cela résulte d’une solution qui n’a que 4 solutions équivalentes. Le compte est bon !


Code:



' ******************************************************************************
'
'                Le problème des huit dames
'
' ******************************************************************************

' Sur un échiquier 8 X 8, placer 8 dames telles qu'aucune ne puisse être prise
' par l'une des 7 autes c.a.d. telle qu'il y ait au plus une dame dans chaque
' ligne, dans chaque colonne et dans chaque diagonale.

' ******************************************************************************

' Les solutions sont affichées comme suit: 15863724
' Cette façon doit être interprétée ainsi

' Colonne i ..... 1 2 3 4 5 6 7 8
'                ---------------
' Ligne dame(i).. 1 5 8 6 3 7 2 4
'
' C.A.D une dame en ligne 1,colonne 1; une dame en ligne 5, colonne 2;
' une dame en ligne 8, colonne 3; une dame en ligne, 6 colonne 4; etc..

' ******************************************************************************
' Pour comprendre l'algorithme utilisé:

' Comment peut-on exprimer que les dames des colonnes i et j ne se menacent pas?
' Deux dames sont dans la même ligne si dame(i) = dame(j).
' Elles sont sur la même diagonale si la droite qui les joint a pour coefficient
' directeur +1 ou -1 c.a.d : (dame(i) - dame(j)) / (i-j) = + ou - 1
' c.a.d, comme i > j, abs(dame(i) - dame(j)) = i - j

' Ces 2 constatations simples mais géniales, donne le programme ultra bref qui
' règle un problème que même Gauss n'a pas su maîtriser entièrement!

' ******************************************************************************

dim i,j,k,dame(8),solution$
label deplacer_dame
memo 1  : full_space 1 : print_target_is 1
caption 0 , "        LE PROBLEME DES HUIT DAMES"+string$(50," ")+"PAR PAPYDALL"
width 0,900 : height 0, 600
top 1,10:left 1, 150 :width 1,612 : height 1, 500
font_bold 1 : font_color 1,255,0,0
print : print :print
print string$(35," ") + "!!!      VEUILLEZ PATIENTER,  JE CALCULE    !!!"

for i = 1 to 8  : ' placer les dames
  dame(i) = 1  : ' placer la ième dame dans la ligne 1
  while dame(i) <= 8  : ' placer_dame
    if i > 1
      for j = 1 to i-1  : ' verifier si cette dame est libre de toute menace
      ' si elle est menacée, on va à deplacer_dame et la dame monte d'une case
        if dame(i) = dame(j) or abs(dame(i)-dame(j)) = (i-j) then goto deplacer_dame
      next j
    end_if
next i

    for k = 1 to 8 : solution$ = solution$ + str$(dame(k)) : next k
    solution$ = solution$ + string$(5," ")
    i = i-1
deplacer_dame:
  repeat
      dame(i) = dame(i)+1 : ' la dame monte d'une case
  end_while : ' la dame est encore sur l'échiquier? si oui on revient à placer_dame
      i = i-1 :' si non vérifier si une dame précédente existe
              ' si oui la faire avancer d'une case vers le haut
  until i = 0
' **************** AFFICHAGE DE LA SOLUTION  **********************************
clear 1 : print : print
print "                                              Voici les solutions : " : print
print "        Par exemple la solution 15863724 est représentée par la permutation (1,5,8,6,3,7,2,4)"
print "        Cette façon d'afficher les résultats doit être interprétée comme suit :" : print
print "        Chaque élement de la permutation représente la ligne où une dame se trouve."
print "        Le rang de chaque élement représente la colonne." : print
print "        Dans l'exemple ci-haut, on a donc:" : print
print "            une  dame  dans  la  1ère  colonne,  1ère  ligne"
print "            une  dame  dans  la  2ème  colonne,  5ème  ligne"
print "            une  dame  dans  la  3ème  colonne,  8ème  ligne"
print "            une  dame  dans  la  4ème  colonne,  6ème  ligne"
print "            une  dame  dans  la  5ème  colonne,  3ème  ligne"
print "            une  dame  dans  la  6ème  colonne,  7ème  ligne"
print "            une  dame  dans  la  7ème  colonne,  2ème  ligne"
print "            une  dame  dans  la  8ème  colonne,  4ème  ligne" : print

font_color 1, 0,0,255

solution$ = string$(2, " ") + solution$

print : print : print solution$
print
print "              !!!  I L  Y  A    E  N    T  O  U  T    9 2    S  O  L  U  T  I  O  N  S  !!!"
end
' **********************************************************************


PS:

C’est bizarre. Les espaces ne sont pas correctement transmis!!
Si l'affichage n'est pas bien aligné,vérifiez qu’il y a bien 5 espaces en lignes 61 et 2 espaces en ligne 90

Programme édité une fois

A+ lol!


Dernière édition par papydall le Mer 16 Mai 2012 - 19:20, édité 2 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames EmptyVen 11 Mai 2012 - 19:10

Très intéressant ! Je vais regarder ça en détail.

En effet, des espaces multiples ne sont PAS transmis correctement dans le forum. J'ai eu me même problème avec mes modules de justification et cadrage (mini-facture, liste des polices fixes, valeurs de pi cadrées gauche/droite/centrée). Je crois qu'il vaut mieux écrire string$(5," ") au lieu de mettre 5 espaces entre guillemets.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames EmptyVen 11 Mai 2012 - 19:52

OK Klaus.
C'est fait.
A+
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames EmptyMar 15 Mai 2012 - 13:34

Escuse moi pour le délai Papydall, ça m'avait échappé à mon retour ...
sinon, je crois que la ligne
Code:
print "        est représentée par la permutation (1,5,8,6,3,7,2,4)" : print
est un vestige de la mise au point / mise en forme du source...
Tu ne veux pas faire une représentation graphique de la solution ?
Un petit jeu de dame avec intellignece artificielle pour jouer contre l'ordi à la façon Bignono ?

Smile Bon, en tout cas, c'était un joli petit problème
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames EmptyMar 15 Mai 2012 - 17:51

Le problème des 8 dames... sans moi, j'ai déjà assez de problèmes avec une seule.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames EmptyMar 15 Mai 2012 - 18:20

^^ (Moi chez moi 1 femme, 2 filles et 3 chattes ... tu imagines .. déjà 6 sur les 8 ...)
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames EmptyMer 16 Mai 2012 - 19:19

Salut tout le monde.

Quant à moi (et pas tous chez moi !), j’ai une femme, un fils, deux filles, (tous mariés), deux petites-filles, deux petit-fils et j’attends le tout dernier petit-fils dans quelques jours. Quand ile se réunissent tous, ça fait du monde et j’éprouve un immense bonheur !

Avouez que les femmes sont un don du ciel ! Même quand on a des petits problèmes avec.
Mais qui ose prétendre qu’il n’en a pas eut avec la sienne !

Pour le problème des 8 dames, si je dois réfléchir pour trouver un algorithme pour le résoudre, je pense qu’il me poserait plus de problèmes qu’avec la mienne !

@Jicehel
C’est vrai , la ligne ‘ PRINT « est représentée par la permutation (1,5,8,6,3,7,2,4)" : PRINT’ est un vestige de la mise au point / mise en forme du source...
C'est corrigé.

Citation :

Tu ne veux pas faire une représentation graphique de la solution ?
Un petit jeu de dame avec intellignece artificielle pour jouer contre l'ordi à la façon Bignono ?


Tant que nous y sommes, ça sera un excellent exercice pour que tu nous exhibe tes immenses talents de programmeur ! Sérieusement, je t’invite donc à t’y mettre !
Voila, j’ai inversé les rôles !

lol! lol! lol!

Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Le problème des 8 dames Empty
MessageSujet: Re: Le problème des 8 dames   Le problème des 8 dames Empty

Revenir en haut Aller en bas
 
Le problème des 8 dames
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un problème
» Jeu de dames
» Le source d'un jeu de dames internationnales si ça interesse
» Les dames françaises - la table d'exercices
» Problème avec select case Probleme réglé merci

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: