cours/paradigme de l'assignation simultanée.md
Oscar Plaisant 602a41e7f8 update
2024-12-25 22:30:24 +01:00

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
> ```