Background Ich habe ein Punktbild des Bildes von Irasutoya gemacht. (Teil1) beim Teilen einer Farbe in vier Ich setze den Schwellenwert manuell als "range_color = [0, 85, 170, 255]" (oder "[i * int (255/3) für i in range (3)]"). (Eigentlich wurde es in 3 Teile geteilt und auf 4 Werte angenähert.)
Dieses Mal war es nur teilbar, also gab es kein Problem, aber ich überlegte, wie ich den Algorithmus entwerfen sollte, wenn der Bereich und die Anzahl der Unterteilungen willkürlich und unterschiedliche Werte waren, also fasste ich ihn zusammen.
Im obigen Beispiel beträgt der Bereich 255 und die Anzahl der Unterteilungen 3.
Method
Es ist nicht sauber teilbar und ein Rest wird generiert. In diesem Fall addieren Sie +1 gleichmäßig zum ersten Element.
Also, wie es geht
Es ist der Fluss von.
Development
import sys
def main():
if len(sys.argv) != 3:
print("[USAGE] you give parameters this command.")
print("[EXAMPLE] python main.py [range number] [n-division number]")
print("[EXAMPLE] python main.py 255 4")
sys.exit()
r = int(sys.argv[1]) #Reichweite
d = int(sys.argv[2]) #n Anzahl der Abteilungen
q, mod = divmod(r, d) #Ware, Restberechnung
#Zusatzliste
plus = [q + 1 if i < mod else q for i, d in enumerate(range(d - 1))]
print(plus)
#Ausgabe
dst = []
dst.append(plus[0])
for i in range(len(plus)):
dst.append(plus[0] + sum(plus[:1 + i]))
print(dst)
if __name__ == '__main__':
main()
Comment
\W $ python main2.py 255 6
[43, 43, 43, 42, 42]
[43, 86, 129, 172, 214, 256]
\W $ python main2.py 255 10
[26, 26, 26, 26, 26, 25, 25, 25, 25]
[26, 52, 78, 104, 130, 156, 181, 206, 231, 256]
Die "Additionsliste" ist eine Liste der Werte der Intervalle jedes Elements. Berechnen Sie anhand dieser Liste jedes Element mit "Summe (plus [: 1 + i])".
Beispiel) Wenn Sie den Bereich 255, die Anzahl der Unterteilungen 10 und das 7. Element berechnen möchten Anfangswert 26 + [26, 26, 26, 26, 26, 25] Gesamtwert = 181
Es ist die Differenznummernfolge, die ich in der High School gelernt habe. : smirk_cat: Terra Natsu
a_n = a_1 + \sum_{k=1}^{n-1}b_k \quad (n \geqq 2 )
PostScript Wenn Sie Inhalte erstellen, denken Sie möglicherweise auch in kleinem Maßstab ein wenig über den Algorithmus nach. Als Entwickler gibt es keinen Mangel an Schreiben, da die Qiita-Elemente zunehmen werden. : Roboter:
Reference
[(x + i) // n für i im Bereich (n)]
tun. Dieser ist einfacher.Recommended Posts