update
This commit is contained in:
40
paradigme de l'assignation simultanée.md
Normal file
40
paradigme de l'assignation simultanée.md
Normal file
@@ -0,0 +1,40 @@
|
||||
up:: [[paradigme de programmation|paradigmes]]
|
||||
source::[[floydParadigmsProgramming1979]]
|
||||
#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
|
||||
> ```
|
Reference in New Issue
Block a user