[PYTHON] Comment lister les nombres en les divisant en n

Background J'ai fait une image par points de l'image d'Irasutoya. (part1) lors de la division d'une couleur en quatre J'ai défini manuellement le seuil comme range_color = [0, 85, 170, 255] (ou [i * int (255/3) pour i dans la plage (3)]). (En fait, il a été divisé en 3 parties et approximé à 4 valeurs.)

Cette fois, c'était juste divisible, donc il n'y avait pas de problème, mais j'ai pensé à comment concevoir l'algorithme si la plage et le nombre de divisions étaient des valeurs arbitraires et différentes, alors je l'ai résumé.

Dans l'exemple ci-dessus, la plage est de 255 et le nombre de divisions est de 3.

Method

Il n'est pas divisible proprement et un reste est généré. Dans ce cas, ajoutez +1 uniformément au premier élément.

Alors, comment faire

  1. Calculez le quotient et le reste à partir de la plage et du nombre de divisions
  2. Créez une liste d'ajout pour les calculs temporaires
  3. Calculez l'élément (valeur limite) en fonction de la liste d'addition et poussez-le.

C'est le flux de.

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])  #intervalle
    d = int(sys.argv[2])  #n Nombre de divisions
    q, mod = divmod(r, d) #Marchandise, calcul du reste

    #Liste d'ajout
    plus = [q + 1 if i < mod else q for i, d in enumerate(range(d - 1))]
    print(plus)

    #production
    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]

La "liste d'addition" est une liste des valeurs des intervalles de chaque élément. Sur la base de cette liste, calculez chaque élément avec sum (plus [: 1 + i]).

Exemple) Lorsque vous souhaitez calculer la plage 255, le nombre de divisions 10 et le 7e élément Valeur initiale 26 + [26, 26, 26, 26, 26, 25] valeur totale = 181

C'est la séquence de nombres de différence que j'ai apprise au lycée. : smirk_cat: Terra Natsu

a_n = a_1 + \sum_{k=1}^{n-1}b_k  \quad (n \geqq 2 )

PostScript Lorsque vous créez du contenu, vous pouvez penser un peu à l'algorithme, même à petite échelle. En tant que développeur, l'écriture ne manque pas car les éléments de qiita vont augmenter. : robot:

Reference

Recommended Posts

Comment lister les nombres en les divisant en n
[python] Comment afficher les éléments de la liste côte à côte
Comment utiliser la liste []
[Python] Comment utiliser la liste 1
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Comment connecter le contenu de la liste dans une chaîne de caractères
[Python] Comment utiliser la liste 3 Ajouté
[FSL] Comment décoller Atlas un par un et les séparer
Comment séparer le code de traitement du pipeline par spider avec Scrapy
[Python] Comment afficher des nombres aléatoires (module aléatoire)
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
Comment décomposer les polices TTC en TTF.
Résumé de l'utilisation de la liste Python
Comment sous-lister une liste incluant les éléments restants en la divisant en longueurs spécifiques
Comment convertir M4a acquis par iTunes en wav
Comment effacer un taple dans une liste (Python)
[Django] Comment obtenir des données en spécifiant SQL.
Comment créer une sortie JSON Scintillante en japonais
Comment effacer les caractères générés par Python
[Python] Comment trier les instances par variables d'instance
Comment compter les nombres dans une plage spécifique
Inspiré par "Comment créer du JavaScript purement fonctionnel"
Comment créer des nombres aléatoires avec le module aléatoire de NumPy
Comment supprimer les éléments en double dans la liste Python 3