Il y avait une situation où je voulais recevoir une variable contenant 1 ou 2 et renvoyer 2 pour 1 et 1 pour 2.
J'ai appris un moyen pratique d'écrire 1 et 2 qui peut être utilisé dans un tel cas, alors prenez note.
Comme indiqué dans les commentaires, il y avait une manière plus simple de l'écrire.
n = 1
print(3-n) # 2
m = 2
print(3-m) # 1
n = 0
print(1-n) # 1
m = 1
print(1-m) # 0
Lorsque $ x $ est soit $ n $, soit $ n-1 $
\begin{eqnarray}
f(x) &=& 2n-1-x\\&=&\left\{
\begin{array}{ll}
n & (x = n-1) \\
n-1 & (x =n)
\end{array}\right.
\end{eqnarray}
Évident sans preuve.
Donc, ** L'histoire jusqu'à présent est suffisante, vous n'avez donc pas à lire le reste. ** **
Je vais laisser l'article original pour le moment.
n = 1
print(n%2+1) # 2
m = 2
print(m%2+1) # 1
seulement ça.
Ce seul n'est pas un article, alors pensons aux autres nombres comme exercice cérébral.
Pensez à permuter les 0 et les 1. Il n'y a pas de gestion avec bool.
n = 1
print((n+1)%2) # 0
m = 0
print((m+1)%2) # 1
l'a fait.
De la même manière, remplacez 2 par 3 et 3 par 2.
n = 2
print((n+1)%2+2) # 3
m = 3
print((m+1)%2+2) # 2
Essayez de remplacer 3 par 4 et 4 par 3.
n = 3
print(n%2+3) # 4
m = 4
print(m%2+3) # 3
La formule de calcul change selon que 2n $ et 2n-1 $ sont échangés ou 2n $ et 2n $ + 1 $ sont échangés.
Lors de l'échange de 2n $ et 2n-1 $
\begin{eqnarray}
f(x) &=&x \bmod 2 +2n-1 \\&=& \left\{
\begin{array}{ll}
2n & (x = 2n-1) \\
2n-1 & (x =2n)
\end{array}
\right.
\end{eqnarray}
En échangeant 2n $ et 2n $ + 1 $
\begin{eqnarray}
f(x) &=&(x+1) \bmod 2 +2n \\&=& \left\{
\begin{array}{ll}
2n & (x = 2n+1) \\
2n+1 & (x =2n)
\end{array}
\right.
\end{eqnarray}
~~ Je réfléchis en écrivant de manière appropriée, il peut donc y avoir une manière d'écrire plus efficace. Il y avait ~~ (haut de l'article).
En cas de doute, utilisez l'instruction if.
Recommended Posts