[PYTHON] Le tour de Jupyter 2

Suite de l'astuce de Jupyter

Calculer l'égalité ou la séquence rationnelle avec Jupyter

En guise de préparation, procédez d'abord comme suit:

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')

Essayez de courir

jupyter_notebook


%S 1+4+7+...

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

La formule de calcul s'affiche.


jupyter_notebook


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

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

Avec le dernier terme, la somme et la formule sont affichées.


jupyter_notebook


%S 1-3+9+...

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


Vous pouvez omettre le "%" de "% S".

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}

Vous pouvez d'abord l'évaluer en le mettant entre "{}".

c'est tout

Recommended Posts

Le tour de Jupyter 4
Astuce de Jupyter 5
Astuce de Jupyter 3
Le tour de Jupyter 2
Jupyter commence
Extensions Jupyter NB
astuces numpy
Astuces Scapy
Jupyter Notebook: 4 trucs et astuces banals
Installation de Jupyter
L'astuce de Jupyter
Astuces Python
Astuces Python
Conseils Python Conda
Erreur d'installation de Jupyter
Mémo Jupyter Notebook
Présentation de Jupyter Notebook
Note d'étude Jupyter_006
Jupyter Lab commence
Gérer le processus Jupyter
Conseils personnels de Django
Conseils de débogage Python
Astuces de clic Python
Puissant ordinateur portable Jupyter
[pandas] Conseils GroupBy
De manière inattendue (?) Connaissance du bean Python
Golang avec Jupyter
Tensorflow mes propres conseils
Bash dans Jupyter
Astuces pour les modèles Django
Jupyter sur AWS
Conseils d'écriture sur tissu
Note d'étude Jupyter_002
Mot de passe du notebook Jupyter
Construire Jupyter Hub
Mémo Jupyter Notebook
Note d'étude Jupyter_008
Conseils de traçage LTTng
Note d'étude Jupyter_004
configuration de jupyter qtconsole
Étude Jupyter note_001
Note d'étude Jupyter_003
Note d'étude Jupyter_007
Collection de conseils chorégraphe
Note d'étude Jupyter_005
[Astuces] Enregistrez / copiez le graphique affiché dans Jupyter Lab