Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2212 connectés 

  FORUM HardWare.fr
  Emploi & Etudes
  Aide aux devoirs

  algo : déplacement aléatoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

algo : déplacement aléatoire

n°1999928
slr56
Tout problème a sa solution.
Posté le 11-11-2008 à 17:20:38  profilanswer
 

Bonjour,
je suis en train de faire un algorithme dont le sujet est le suivant :
 
Une blatte ivre est placée sur un carré au milieu d'un sol carrelé dans une pièce rectangulaire de taille n*m carreaux. L'insecte erre (à la recherche d'un aspirine) aléatoirement de carreau en carreau dans la pièce. En supposant qu'il puisse aller du carreau courant sur chacun des huit carreaux environnants (à moins qu'il ne soit devant un mur)  avec une probabilité équivalente, combien de temps lui faudra-t-il pour toucher chaque carreau sur le sol au moins une fois.
 
Ce problème est difficile à résoudre en utilisant les techniques de probabilité pure mais est beaucoup plus simple à résoudre avec un ordinateur. La technique employée est appelée simulation. Cette technique est largement utilisée dans l'industrie pour prévoir les flux de trafic, contrôle d'inventaire, etc. Le problème peut être simulé en utilisant la méthode suivante:
 
Un tableau count de n*m est utilisé pour représenter le nombre de fois que notre blatte atteint chaque carreau sur le sol. Toutes les cellules de ce tableau sont initialisée à zéro. La position de l'insecte sur le sol est représentée par les coordonnées (ibug, jbug). Les huit déplacements possibles de l'insecte sont représentés par les carreaux localisés dans:
 
(ibug + imove[k], jbug + jmove[k]) où 0=< k =< 7 et
imove[0] = -1  jmove[0] = 1
imove[1] = 0  jmove[1] = 1
imove[2] = 1  jmove[2] = 1
imove[3] = 1  jmove[3] = 0
imove[4] = 1  jmove[4] = -1
imove[5] = 0  jmove[5] = -1
imove[6] = -1  jmove[6] = -1
imove[7] = -1  jmove[7] = 0
 
Un déplacement aléatoire sur chacun des huit carreaux voisins est simulé en générant une valeur aléatoire pour k entre 0 et 7. Bien sûr, l'insecte ne peut pas aller en dehors de la pièce, donc les coordonnées traversant un mur doivent être ignorées, et une nouvelle valeur doit être générée. Chaque fois qu'un carreau est rencontré, le compte de ce carreau est incrémenté de sorte qu'une entrée non nulle montre le nombre de fois que l'insecte atterri sur le carreau. Quand chaque carreau a été traversé au moins une fois, l'expérience  est terminée.
 
A/ Traiter toutes les valeurs de n et m, 2=< n =<40 et 2=< m =<20
 
Je décompose le programme en procédure.

Code :
  1. Debut
  2.      procedure choix_taille
  3.      procedure initialiser_tableau
  4.      procedure incrementer_cases    //procedure qui fait déplacer la blatte de manière aléatoire
  5. Fin


       

Code :
  1. procedure choix_taille
  2.         entier : n, m
  3.      
  4. Tant que m<2 ou m>20 faire
  5.  afficher "saisissez la taille m du tableau:"
  6.  entrer m
  7. Refaire
  8. Tant que n<2 ou >40 faire
  9.  afficher "saisissez la taille n du tableau:"
  10.  entrer n
  11. Refaire
  12. finproc


 
 
       

Code :
  1. procedure initialiser_tableau (dr Tab : tableau[2..n][2..m] d'entier)
  2. entier : i,n,j,m
  3. Pour i depuis 2 jusqu' à n faire
  4.  Pour j depuis 2 jusqu'à m faire
  5.   Tab[i,j]=0
  6.  Finpour
  7. Finpour
  8.        finproc


 
 
 

Code :
  1. procedure incrementer_cases
  2. entier : ibug, imove, jbug, jmove
  3. Comment récupérer la taille du tableau choisis par l'utilisateur dans la première procédure?
  4. Comment faire pour ne pas sortir du tableau?
  5.            Comment faire déplacer la blatte de manière aléatoire tout en respectant les contraintes (les murs et la blatte se déplace sur 1 des 8 carreaux qui entoure sa position)?
  6. Comment parcourir le tableau jusqu'à ce que toutes les cellules aient une valeur supérieure à 0?
  7. Finproc


 
Merci à ceux qui m'aideront.
 
Cordialement.


Message édité par slr56 le 11-11-2008 à 17:24:50
mood
Publicité
Posté le 11-11-2008 à 17:20:38  profilanswer
 

n°2000196
slr56
Tout problème a sa solution.
Posté le 11-11-2008 à 20:58:30  profilanswer
 

up svp

n°2000654
slr56
Tout problème a sa solution.
Posté le 12-11-2008 à 14:24:41  profilanswer
 

up svp je bloque

n°2000660
capitainei​gloo
Posté le 12-11-2008 à 14:26:50  profilanswer
 

comment une blatte peut elle prendre de l'aspirine ?

n°2000685
slr56
Tout problème a sa solution.
Posté le 12-11-2008 à 14:58:38  profilanswer
 

capitaineigloo a écrit :

comment une blatte peut elle prendre de l'aspirine ?

C'est juste pour transformer le sujet en "histoire"...  
 

n°2000694
meringue7
Posté le 12-11-2008 à 15:15:29  profilanswer
 

c'est quoi qui te bloque exatcement ? montre nous tes pistes de recherche on pourra t aider


---------------
une qui prend chére :/ -> http://fr.youtube.com/watch?v=jn9cQd57FVE
n°2016243
slr56
Tout problème a sa solution.
Posté le 25-11-2008 à 14:37:08  profilanswer
 

meringue7 a écrit :

c'est quoi qui te bloque exatcement ? montre nous tes pistes de recherche on pourra t aider

salut, désolé de répondre que maintenant mais avec tous les projets que j'ai en ce moment, j'ai du laissé ce programme de côté durant quelques temps.
 
Ce qui me bloque c'est comment dire en langage que je dois me déplacer de cellule en cellule sans sortir du tableau et ce jusqu'à ce que toutes les cellules aient une valeur>0. (1 passage : valeur_cellule=valeur_cellule+1).
 
Donc j'ai pensé à faire quelque chose de la manière suivante :

Code :
  1. Pour i depuis 1 jusqu'à n faire
  2.             Pour j depuis 1 jusqu'à m faire
  3.                 Tant que "toutes les valeurs du tableau ne sont pas>0" faire
  4.                        tab[i,j]=tab[i,j]+1
  5.                 refaire
  6.            finpour
  7.        finpour


 
Mais comment traduire "toutes les valeurs du tableau ne sont pas>0" ?
 
 


Message édité par slr56 le 25-11-2008 à 14:38:18
n°2016372
slr56
Tout problème a sa solution.
Posté le 25-11-2008 à 17:06:25  profilanswer
 

up


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Emploi & Etudes
  Aide aux devoirs

  algo : déplacement aléatoire

 

Sujets relatifs
tableaux a x dimension (algo)Indemnités déplacement
Déplacement hors France -- Conditions...Variable aléatoire
Attaquer une SSII au Prud'homme pour problème de déplacement ?Deduction impots déplacement presta
contrat de travail : frais de déplacement & primes ?Probabilités (variable aléatoire discrète, loi...)
Question frais de déplacemententretien annulé à la derniére minute mais déplacement effectué!
Plus de sujets relatifs à : algo : déplacement aléatoire


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)