Ja, mach weiter von gestern [http://d.hatena.ne.jp/shindannin/20111202/1322833089] (http://d.hatena.ne.jp/shindannin/20111202/1322833089) Als.
Round-Robin mit Bits
Es gibt 7 Farben (rot, orange, gelb, grün, blau, indigo, lila) der Farbe. Ich wählte drei davon aus und beschloss, ein Bild zu zeichnen. Wie viele Möglichkeiten, Farben auszuwählen?
Bei der Herstellung einer 7-fachen Schleife mit für.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from __future__ import print_function
import sys
import io
import re
import math
cou = 0 #Zähler mit mehreren Farben der Farbe, die Sie gerade ausgewählt haben
res = 0 #Wenn eine Kombination von 3 Farben herauskommt+1 Variable
#für Farbe im Bereich(2):In der ersten Runde der Schleife wird 0 zugewiesen, also die nicht verwendete Farbe
#Die zweite Runde ist die Farbe, die ich benutze.
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):
#Wenn Sie jede Farbe am tiefsten Teil der Schleife hinzufügen und sie gleich 3 ist, können Sie 3 Farben auswählen.
cou=aka+daidai+ki+midori+ao+ai+murasaki
if cou==3:
res+=1
print (res)
Wenn die Bedingungen kompliziert werden, ist es nicht möglich, Fehler beim Schreiben zu behandeln, oder wenn die Anzahl der angegebenen Farben zunimmt, so scheint es eine Methode zu geben, die für eine Schleife unter Verwendung von Bits aufgerufen wird. Das Folgende ist eine vollständige Kopie (obwohl es nicht eindeutig ist, ob es gemacht wird)
Round-Robin mit 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')
Ich habe es nicht geschrieben, weil ich es verstehen konnte, und es ist sehr wahrscheinlich, dass ich einen Fehler machen würde, wenn ich es erklären würde, also werde ich die Erklärung heute Abend weglassen. Der Druck begann mit future import print_function.
Recommended Posts