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