[PYTHON] So listen Sie Zahlen auf, indem Sie sie in n teilen

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

  1. Berechnen Sie den Quotienten und den Rest aus dem Bereich und der Anzahl der Unterteilungen
  2. Erstellen Sie eine Additionsliste für temporäre Berechnungen
  3. Berechnen Sie das Element (Grenzwert) anhand der Additionsliste und drücken Sie es.

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

Recommended Posts

So listen Sie Zahlen auf, indem Sie sie in n teilen
[Python] So zeigen Sie die Elemente der Liste nebeneinander an
Verwendung der Liste []
[Python] Verwendung von Liste 1
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
So verbinden Sie den Inhalt der Liste mit einer Zeichenfolge
[Python] Verwendung von Liste 3 Hinzugefügt
[FSL] Wie man Atlas einzeln abzieht und trennt
So trennen Sie den Pipeline-Verarbeitungscode mit Scrapy nach Spider
[Python] So zeigen Sie Zufallszahlen an (Zufallsmodul)
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
So zerlegen Sie eine TTC-Schriftart in TTF.
Zusammenfassung der Verwendung der Python-Liste
So unterlisten Sie eine Liste mit den verbleibenden Elementen, indem Sie sie in bestimmte Längen unterteilen
So konvertieren Sie von iTunes erworbenes m4a in wav
So löschen Sie einen Taple in einer Liste (Python)
[Django] So erhalten Sie Daten durch Angabe von SQL.
Wie man eine kratzige JSON-Ausgabe japanisch macht
So löschen Sie die von Python ausgegebenen Zeichen
[Python] So sortieren Sie Instanzen nach Instanzvariablen
So zählen Sie Zahlen in einem bestimmten Bereich
Inspiriert von "Wie man reines funktionales JavaScript macht"
Wie man Zufallszahlen mit dem Zufallsmodul von NumPy macht
So entfernen Sie doppelte Elemente in der Python 3-Liste