41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| up:: [[paradigme de programmation|paradigmes]]
 | |
| source::[[floydParadigmsProgramming1979]]
 | |
| #s/informatique 
 | |
| 
 | |
| > [!definition] paradigme de l'assignation simultanée
 | |
| >  Consiste à faire en sorte que plusieurs variables soient modifiées sans que leurs effets de bord ne se mélangent (les effets de bord sont "reardés" après l'assignation).
 | |
| > Cela est équivalent à imaginer que ces assignations se font simultanément
 | |
| ^definition
 | |
| 
 | |
| 
 | |
| > [!example] Exemple
 | |
| > Si on veut ajouter la valeur de `f(Y)` à `X` et à `Y` :
 | |
| > ```python
 | |
| > temp = f(Y)
 | |
| > X += temp
 | |
| > Y += temp
 | |
| > ```
 | |
| 
 | |
| 
 | |
| > [!example] Exemple - modèle proie-prédateur
 | |
| > Si on à un modèle proie-prédateur de la forme :
 | |
| > $W' = f(W, R)$
 | |
| > $R' = g(W, R)$
 | |
| > 
 | |
| > Un débutant coderait ceci :
 | |
| > ```python
 | |
| > for _ in range(...):
 | |
| >     W = f(W, R)
 | |
| >     R = f(W, R)
 | |
| > ```
 | |
| > 
 | |
| > Le problème est que la plupart des lagages ne supportent pas directement l'assignation simultanée. Il faut donc faire :
 | |
| > 
 | |
| > ```python
 | |
| > for _ in range(...):
 | |
| >     temp = f(W, R)
 | |
| >     W = f(W, R)
 | |
| >     R = f(W, R)
 | |
| >     W = temp
 | |
| > ```
 |