Oui, continue d'hier [http://d.hatena.ne.jp/shindannin/20111202/1322833089] (http://d.hatena.ne.jp/shindannin/20111202/1322833089) Que.
Round-robin utilisant des bits
Il existe 7 couleurs (rouge, orange, jaune, vert, bleu, indigo, violet) de peinture. J'ai choisi trois d'entre eux et j'ai décidé de faire un dessin. Combien de façons de choisir les peintures?
Lors de la création d'une boucle 7 fois avec pour.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from __future__ import print_function
import sys
import io
import re
import math
cou = 0 #Comptoir avec plusieurs couleurs de la peinture que vous venez de sélectionner
res = 0 #Quand une combinaison de 3 couleurs sort+1 variable
#pour la couleur dans la gamme(2):Dans le premier tour de la boucle, 0 est attribué, donc la couleur inutilisée
#Le deuxième tour est la couleur que j'utilise.
for aka in range(2):
for daidai in range(2):
for ki in range(2):
for midori in range(2):
for ao in range(2):
for ai in range(2):
for murasaki in range(2):
#Si vous ajoutez chaque couleur à la partie la plus profonde de la boucle et qu'elle est égale à 3, vous pouvez choisir 3 couleurs.
cou=aka+daidai+ki+midori+ao+ai+murasaki
if cou==3:
res+=1
print (res)
Si les conditions se compliquent, il n'est pas possible de traiter les erreurs d'écriture ou lorsque le nombre de couleurs données augmente, il semble donc y avoir une méthode appelée boucle utilisant des bits. Ce qui suit est une copie complète (bien qu'il soit ambigu de savoir si elle est faite)
Round-robin avec bit.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from __future__ import print_function
import sys
import io
import re
import math
max_colors = 7
result = 0
for all_color in range(1 << max_colors):
num_colors = 0
for color in range(max_colors):
if (all_color & (1 << color)):
num_colors += 1
if num_colors == 3:
result += 1
print (result, end='\n')
Je ne l'ai pas écrit parce que je pouvais le comprendre, et il est très probable que je ferais une erreur si je l'expliquais, alors je vais omettre l'explication ce soir. print a démarré avec de future import print_function.
Recommended Posts