[PYTHON] Anzeige von Brüchen (Liste)

Hallo. Sie können mit Brüchen in Python mit Brüchen arbeiten. Wenn ein solcher Bruchwert in der Liste enthalten ist, habe ich eine Funktion `prettyfrac ()` erstellt, damit die Ausgabe der Druckanzeige gut aussieht. In der Unterklasse der Fraction-Klasse ähnelt sie Ausgabe der Gleitkommazahlliste anzeigen ziemlichfloat ().

Das folgende Beispiel ist die Berechnung des Koeffizienten in Berechnung der elliptischen Bogenlänge und seiner Anzeigeausgabe.

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

Anzeige von Brüchen (Liste)
Zeigen Sie eine Liste der Alphabete in Python 3 an
Liste der Python-Module
Kopie mehrerer Listen
Anzeige der Ausgabe einer Liste von Gleitkommazahlen
Liste der Aktivierungsfunktionen (2020)
Tiefe der verschachtelten Liste
Zeigen Sie eine Liste häufig verwendeter Befehle in Zsh an
Zusammenfassung der Python3-Listenoperationen
Japanische Anzeige von Matplotlib, Seaborn
Filterbetrieb (Keine, Liste)
Liste der Knoten in Diagrammen
Liste der selbst erstellten Docker-Bilder
Mehrdimensionale Array-Initialisierung der Liste
Über den ungefähren Bruchteil des Umfangsverhältnisses
[Python] Kopie einer mehrdimensionalen Liste
Liste nützlicher Codierungsstile
So zeigen Sie eine Liste der mit pyenv installierbaren Versionen an
26.11.2015 Python> Funktionsliste des Moduls anzeigen> Mathematik importieren> Verzeichnis (Mathematik)
Beurteilung, ob durch Listeneinschlussnotation
[Python] Zeigt nur die Elemente der Liste nebeneinander an [Vertikal, horizontal]
Audio-Wellenform-Anzeige in Python
Liste der von conda installierten Pakete
Liste der häufig verwendeten Linux-Befehle
Separate Python-Diagramme (Memo)
Generieren Sie eine Liste aufeinanderfolgender Zeichen
Einführung des Befehls lsix, mit dem eine Liste von Bildern angezeigt werden kann
Informationen zur Grundlagenliste der Python-Grundlagen
[Linux] Liste der in der Praxis verwendeten Linux-Befehle
Algorithmus Gymnastik 24 Mitte der verknüpften Liste
Holen Sie sich die Spaltenliste und Datenliste von CASTable
Externe Anzeige von Matplotlib-Diagrammen mit tkinter
[Python] Listenelemente mit Argumenten variabler Länge anzeigen
Zeigen Sie das Diagramm von tensorBoard auf jupyter an
String-Konvertierung einer Liste mit Zahlen
Grundlegende Grammatik der Python3-Reihe (Liste, Tapple)
Liste der Atom-Pakete, die ich wirklich benutze
Zusammenfassung der integrierten Methoden usw. der Python-Liste
[Maschinelles Lernen] Liste der häufig verwendeten Pakete
Zusammenfassung der Verwendung der Python-Liste
[Python] Nur eine Liste der Ordner abrufen