Bonjour,
J'aurais besoin de votre aide pour créer un programme en langage C qui doit être capable de modéliser une avalanche de sable (modèle proposé par P.Bak en 1988). Voici ce que j'ai.
A une dimension, on construit une série de N colonnes numérotées de 1 à N (vers la droite) adjacentes constituées de carrés représentant des grains de sable. Soit zn la différence de hauteur entre les deux colonnes n et n + 1
zn = h(n) − h(n + 1)
L’ajout d’un grain de sable sur la colonne n (choisie au hasard) entraîne
zn -> zn + 1
zn−1 -> zn−1 − 1
ce qui peut engendrer un déplacement de grains de sable d’une colonne à une autre avec la règle suivante : dès qu’une colonne i contient plus de zc grains que sa voisine de droite, elle déverse un grain sur cette dernière ce qui se traduit par
zi -> zi − 2
zi±1 -> zi±1 + 1 pour z < zc
Le sable ne peut se déverser que sur la frontière droite du tas (comme si on ne simulait qu’un demi tas de sable), soit les conditions aux frontières
z0 = 0
zN -> zN − 1
zN−1 -> zN−1 − 1 pour z < zc
Le processus continue jusqu’à ce que, pout tout n, zn < zc. Pour chaque grain lancé, on calcule la taille de l’avalanche (c’est-à-dire le nombre de grains de sable qui ont franchi la barrière droite).
On étudie ensuite comment réagit le système à différentes configurations initiales (colonnes de hauteurs identiques, distribution de hauteurs telle que, pour tout n, zn>zc, ...).
Voilà en gros ce que je dois programmer, mais je suis asse mauvais en informatique, alors j'aurais besoin d'un petit coup de pour pour commencer.
J'ai toujours quelques soucis avec mon programme. Mon projet est à rendre pour Jeudi, et il y a encore quelques bugs...
Je trace la distribution des avalanches et je trouve quelque chose de très incohérent : des traits dans tous les sens, quelque chose de très désordonné et aléatoire. Puis j'ai un souci pour le problème en 2 D. Je vous mets la trame du programme, si vous souhaitez y jeter un coup d’œil.
Si quelques personnes ont des conseils, je suis preneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
Merci.

 

 
		
		 
        

 
			
			

 
   
 


 Création d'un programme pour projet informatique.
 Création d'un programme pour projet informatique.
				 Répondre avec citation
  Répondre avec citation


 
 


 
  
  
  
 
 
   Envoyé par Milka08
 Envoyé par Milka08
					
 
						
Partager