2.9 KiB
2.9 KiB
In [ ]:
# imports
import os;
import sys;
# NOTE: need this to force jupyter to reload imports:
for key in list(sys.modules.keys()):
if key.startswith('src.'):
del sys.modules[key];
os.chdir(os.path.dirname(_dh[0]));
sys.path.insert(0, os.getcwd());
from src.thirdparty.maths import *;
from src.thirdparty.render import *;
from src.maths.diagrams import *;
from src.maths.sets import *;
from src.widgets import *;
np.random.seed(8007253); # zur WiederholbarkeitIn [ ]:
# Userinput - Anzahl der Funktionen
fnames = ['f', 'g', 'h', 'i', 'j'];
setnames = ['X', 'Y', 'Z', 'U', 'V', 'W'];
ctrl = widgets.IntSlider(value=1, description=f'# Funktionen', min=1, max=len(fnames));
display(ctrl);In [ ]:
# Widget - Mengen und Funktionen
FunctionDiagramWidget(N=ctrl.value, fnames=fnames, setnames=setnames).run();In [ ]:
# ohne Zufallserzeugung:
X = ['a', 'b', 'c', 'd', 'e'];
Y = [2, 3, 5, 7, 11, 13, 17];
Z = ['α', 'β', 'γ', 'δ'];
f = [('a', 5), ('b', 5), ('c', 17), ('d', 2), ('e', 5)]
g = [(2, 'γ'), (3, 'α'), (5, 'β'), (7, 'δ'), (11, 'β'), (13, 'γ'), (17, 'β')];
comp = Functions(
Function(name=('f', 'X', 'Y'), domain=X, codomain=Y, fct=f),
Function(name=('g', 'Y', 'Z'), domain=Y, codomain=Z, fct=g),
);
comp.draw(show_labels=True);