[PYTHON] Affichage des fractions (liste)

Bonjour. Vous pouvez travailler avec des fractions en utilisant Fraction en Python. Quand une telle valeur fractionnaire est dans la liste, j'ai créé une fonction `` prettyfrac () '' pour afficher et sortir une belle impression. Dans le sous-classement de la classe Fraction, il est similaire à Afficher la sortie de la liste de nombres à virgule flottante prettyfloat ().

L'exemple suivant est le calcul du coefficient dans Calcul de la longueur de l'arc elliptique et sa sortie d'affichage.

print(prettyfrac(...)) # print pretty fractions
# ==>  [[1, 1/4, 1/64, 1/256], [1/2, -1/16, -1/128], ...]
from fractions import Fraction

def prettyfrac(x):
    def pfform(x):
        num, den = str(x.numerator), str(x.denominator)
        return num + ("" if den == "1" else "/" + den)
    pfclas = type('', (Fraction,), {'__repr__': pfform, '__str__': pfform})
    def pf(x):
        if isinstance(x, Fraction):
            return pfclas(x)
        else:
            return x
    return map_recur(pf, x)

def map_recur(func, args):
    if isinstance(args, list):
        return [map_recur(func, x) for x in args]
    return func(args)

def binom(frac, n):
    b = 1
    while (n > 0):
        b *= frac / n
        frac, n = frac - 1, n - 1
    return b

def coef(k, maxorder):
    k1 = k if k > 0 else 1
    half = Fraction(1, 2) # 1/2
    return map(lambda j: binom(half,j)*binom(half,j+k)/k1, range((maxorder-k)/2+1))

def main():
    maxorder = 6
    print(prettyfrac([coef(k, maxorder) for k in range(maxorder+1)]))

# ==>  [[1, 1/4, 1/64, 1/256], [1/2, -1/16, -1/128], [-1/16, 1/64, 5/2048], [1/48, -5/768], [-5/512, 7/2048], [7/1280], [-7/2048]]

Recommended Posts

Affichage des fractions (liste)
Afficher une liste d'alphabets en Python 3
Liste des modules python
Copie de plusieurs listes
Afficher la sortie d'une liste de nombres à virgule flottante
Liste des fonctions d'activation (2020)
Profondeur de la liste imbriquée
Afficher une liste des commandes fréquemment utilisées sur Zsh
Résumé des opérations de liste Python3
Affichage japonais de matplotlib, seaborn
Fonctionnement du filtre (Aucun, liste)
Liste des nœuds dans les diagrammes
Liste des images Docker personnalisées
Initialisation de tableau multidimensionnel de la liste
À propos de la fraction approximative du rapport de circonférence
[Python] Copie d'une liste multidimensionnelle
Liste des styles de codage utiles
Comment afficher une liste des versions installables avec pyenv
2015-11-26 python> Afficher la liste des fonctions du module> import math> dir (math)
Jugement du if par la notation d'inclusion de liste
[Python] Afficher uniquement les éléments de la liste côte à côte [Vertical, horizontal]
Affichage de la forme d'onde audio en Python
Liste des packages installés par conda
Liste des commandes Linux fréquemment utilisées
Graphiques Python séparés (mémo)
Générer une liste de caractères consécutifs
Introduction de la commande ls lsix qui peut afficher une liste d'images
À propos de la liste de base des bases de Python
[Linux] Liste des commandes Linux utilisées dans la pratique
Gymnastique algorithmique 24 Milieu de la liste liée
Obtenez la liste des colonnes et la liste des données de CASTable
Affichage externe des diagrammes matplotlib à l'aide de tkinter
[Python] Afficher les éléments de la liste en utilisant des arguments de longueur variable
Afficher le graphique de tensorBoard sur Jupyter
Conversion de chaîne d'une liste contenant des nombres
Grammaire de base de la série Python3 (liste, tapple)
Liste des packages Atom que j'utilise vraiment
Résumé des méthodes intégrées, etc. de la liste Python
[Apprentissage automatique] Liste des packages fréquemment utilisés
Résumé de l'utilisation de la liste Python
[Python] Obtenir une liste de dossiers uniquement