[PYTHON] Jupyters Trick 2

Fortsetzung von Jupyters Trick

Berechnen Sie mit Jupyter die Gleichheit oder rationale Reihenfolge

Führen Sie zur Vorbereitung zunächst folgende Schritte aus:

jupyter_notebook


import re, IPython.core.getipython
from math import log
class NumberSequence:
    def __init__(self, s):
        ss = [t.replace(' ','') for t in re.sub('(.)-', r'\1+-', s).split('+')]
        assert len(ss) == 3 or (len(ss) > 3 and ss[3] == '...')
        tt = [int(i) for i in ss[:3]]
        d, e = tt[1] - tt[0], tt[1]//(tt[0] if tt[0] else 1)
        isratio = tt[2]/(tt[1] if tt[1] else 1) == e
        assert isratio or tt[2]-tt[1] == d
        ssum, self.value = r'\sum_{i=0}', None
        if len(ss) > 4:
            last = int(ss[-1])
            if isratio:
                n = int(round(log(last / tt[0], abs(e)))) + 1
                assert last == tt[0]*e**(n-1)
                self.value = sum(tt[0]*e**i for i in range(n))
            else:
                n = (last-tt[0]) // d + 1
                assert last == tt[0]+d*(n-1)
                self.value = sum(tt[0]+d*i for i in range(n))
            ssum += '^{%d}'%(n-1)
        if isratio:
            self.form = '$%s{%s%d^i}$'%(ssum, '' if tt[0]==1 else r'%s \times '%tt[1], e)
        else:
            self.form = r'$%s{%s%s i}$'%(ssum, '' if tt[0]==0 else '%s + '%tt[0],
                '' if d==1 else '%d \times'%d)
    def _repr_html_(self):
        if self.value is not None:
            print(self.value)
        return self.form
def S_impl(s):
    return NumberSequence(s)
ip = IPython.core.getipython.get_ipython()
if ip:
    ip.register_magic_function(S_impl, magic_name='S')

Versuche zu rennen

jupyter_notebook


%S 1+4+7+...

\sum_{i=0}{1 + 3 \times i}

Die Berechnungsformel wird angezeigt.


jupyter_notebook


%S 1+4+7+...+19
>>>
70

\sum_{i=0}^{6}{1 + 3 \times i}

Mit dem letzten Term werden die Summe und die Formel angezeigt.


jupyter_notebook


%S 1-3+9+...

\sum_{i=0}{-3^i}


Sie können das "%" von "% S" weglassen.

jupyter_notebook


S 1 - 3 + 9 + ... + 81
>>>
61

\sum_{i=0}^{4}{-3^i}

jupyter_notebook


S {'+'.join(['0','1','2','...','100'])}
>>>
5050

\sum_{i=0}^{100}{ i}

Sie können es zuerst bewerten, indem Sie es in "{}" einschließen.

das ist alles

Recommended Posts

Jupyters Trick 4
Jupyters Trick 5
Jupyters Trick 3
Jupyters Trick 2
Jupyter beginnt
Jupyter nb Erweiterungen
numpy tipps
Scapy-Tipps
Jupyter Notebook: 4 banale Tipps und Tricks
Jupyter Installation
Jupyters Trick
Python-Tipps
Python-Tipps
Python Conda Tipps
Jupyter-Installationsfehler
Jupyter Notizbuch Memo
Einführung in Jupyter Notebook
Jupyter-Studie note_006
Jupyter Lab beginnt
Verwalten des Jupyter-Prozesses
Djangos persönliche Tipps
Tipps zum Python-Debuggen
Python-Klick-Tipps
Leistungsstarkes Jupyter-Notizbuch
[Pandas] GroupBy-Tipps
Unerwartet (?) Python Bean Wissen
Golang mit Jupyter
Tensorflow meine eigenen Tipps
Bash in Jupyter
Tipps für Django-Vorlagen
Jupyter auf AWS
Stoff Schreibtipps
Jupyter-Studie note_002
Jupyter Notebook Passwort
Baue Jupyter Hub
Jupyter Notizbuch Memo
Jupyter-Studie note_008
LTTng Tracing-Tipps
Jupyter-Studie note_004
jupyter qtconsole config
Jupyter-Studie note_001
Jupyter-Studie note_003
Jupyter Study Note_007
Choregraphe Tips Collection
Jupyter-Studie note_005
[Tipps] Speichern / kopieren Sie das in Jupyter Lab angezeigte Diagramm