Telefonkostenfunktion

Aufgabe:

Aus einer älteren Unterlage:telefonkostenErklärung: Das else 0 am Schluss bedeutet, dass keine Kosten ausgewiesen werden, falls sinnloserweise ein negativer Verbrauch eingegeben wird. In dieser Aufgabe geht es um Fallunterscheidungen.

Programm Maxima Onlinehttp://maxima-online.org/?inc=r1240591096

 

 

Einfache Wahrscheinlichkeitsrechnung

Aufgaben:

  1. Messergebnis:[0,0,2,2,5,4,6,0,9,10,6,5,11,6,6,15,14,1,0,17].
    a) Bestimme die Häufigkeiten.
    b) Bestimme W(x>2).
    c) Wie hoch ist der Erwartungswert?
  2. Messergebnis:[1,2,1,0,5,1,5,6,9,7,1,6,12,14,15,3,7,10,8,12,8,9,8,19,24].
    a) Bestimme die Häufigkeiten.
    b) Bestimme W(x>3).
    c) Wie hoch ist der Erwartungswert?
  3. Messergebnis:[0,0,2,2,5,4,6,0,9,2,3,4,10,8,11,0,6,5,11,6,6,15,14,1,0,17].
    a) Bestimme die Häufigkeiten.
    b) Bestimme W(x>1).
    c) Wie hoch ist der Erwartungswert?

Strichliste – Sortieren hilft:

tipp1a

Strichliste zu 1a:
strichliste_1

Vollständige Lösung Tabellenkalkulation:
Tabellenkalkulation lässt sich gut anwenden, hat aber einen kleinen Nachteil: die Anzahl der Messergebnisse erfordert jeweils Anpassungen. Die Ausgabe ist sehr schön, die mathematische Vorgangsweise aber eher weniger transparent.

strichliste_2

Programmcode:

load(descriptive);
x:[0,0,2,2,5,4,6,0,9,10,6,5,11,6,6,15,14,1,0,17];
k:2;
G:discrete_freq(x);
X:G[1];
H:G[2];
n:length(H);
N:sum(H[i],i,1,n);
p:H/N;
W:sum(p[i],i,k+1,n);
E:sum(p[i]*X[i],i,1,n),numer;
E:floor(E*10+0.5)/10.0;

Das Unterprogramm descriptive ermöglicht Gruppierung mit discrete_freq()

Programmcode mit benutzerdefinierter Funktion:

A:[[0,0,2,2,5,4,6,0,9,10,6,5,11,6,6,15,14,1,0,17],2]
/* EINGABE kann verändert werden */;
f(x,k):=block(
load(descriptive),
G:discrete_freq(x),
X:G[1],
H:G[2],
n:length(H),
N:sum(H[i],i,1,n),
p:H/N,
W:sum(p[i],i,k+1,n),
E:sum(p[i]*X[i],i,1,n),numer,
E:floor(E*10+0.5)/10.0,
"Ergebnis"
);
f(A[1],A[2]);
display(W,E);

Ausführung mit Maxima Onlinehttp://maxima-online.org/?inc=r-1301181831

Programmcode (alle Aufgaben auf einmal):

f(L):=block(
load(descriptive),
Ergebnis:[],
G:discrete_freq(L[1]),
X:G[1],
H:G[2],
n:length(H),
N:sum(H[i],i,1,n),
p:H/N,
W:sum(p[i],i,L[2]+1,n),
E:sum(p[i]*X[i],i,1,n),numer,
E:floor(E*10+0.5)/10.0,
Ergebnis:append(Ergebnis,[W,E])
);
Aufgaben: matrix(
[[0,0,2,2,5,4,6,0,9,10,6,5,11,6,6,15,14,1,0,17],2],
[[1,2,1,0,5,1,5,6,9,7,1,6,12,14,15,3,7,10,8,12,8,9,8,19,24],3],
[[0,0,2,2,5,4,6,0,9,2,3,4,10,8,11,0,6,5,11,6,6,15,14,1,0,17],1]
)
/* Eingabe darf geändert werden */;
A:args(Aufgaben);
map(f,A);

Es gibt also 3 wesentliche Schritte:

pap

Die Ausführung mit Maxima Online: http://maxima-online.org/?inc=r-607858086

Hinweis: ohne Computerunterstützung ist die Anwendung der Gegenwahrscheinlichkeit anzuraten.

Fischverkauf

Aufgabe: Der Fischverkäufer

Ein Junge züchtet Goldfische als Hobby. Eines Tages beschließt er, alle Fische zu verkaufen. Er tut es in fünf Schritten:
1. Er verkauft die Hälfte seiner Fische und einen halben Fisch.
2. Er verkauft ein Drittel des Restes und einen drittel Fisch.
3. Er verkauft von dem, was ihm bleibt, ein Viertel und einen viertel Fisch.
4. Er verkauft ein Fünftel des Restes und einen fünftel Fisch.

Nun hat er noch 11 Goldfische übrig. Natürlich wird kein Fisch zerteilt oder irgendwie verletzt. Wie viele Fische hatte er am Anfang?

Aus J. Weilharter, Spaß mit Algorithmen, Seite 28ff

Programmcode:

g1:x1=x-(x/2+1/2);
g2:x2=x1-(x1/3+1/3);
g3:x3=x2-(x2/4+1/4);
g4:x4=x3-(x3/5+1/5);
g5:x4=11;
l:solve([g1,g2,g3,g4,g5],[x,x1,x2,x3,x4]);

Lösung mit Maxima-Online: http://maxima-online.org/?inc=r-1387132335

 

Kombinatorik mit GeoGebraCAS

Ein leeres CAS-Sheet auf Geogebra-Tube ist sehr praktisch! Man beachte den Link. http://www.geogebratube.org/student/m96860

image

Aufgabe: Lösung der angezeigten Aufgabe mit Maxima.

Programmcode:

c(n,k):=n!/(k!*(n-k)!);
c(45,6);
c(49,6);
n: [10,11,12];
c(n[1],3);
c(n[2],3);
10!/(3!*7!);

Maxima Online: http://maxima-online.org/?inc=r1244456819

Wenn man es herunterlädt, kann man es mit wxMaxima ausführen (Linux, Windows, MAC).

wxmaxima

Dualzahlen in Dezimalzahlen verwandeln

aufgabe101

Programmcode:
Dualzahl:[1,1,0,1]/* Eingabe, darf veraendert werden */;
n:length(Dualzahl);
Umwandler:makelist(2^(n-i),i,1,n);
Dezimalzahl:Dualzahl.Umwandler /* Skalarprodukt */;

Lösung mit Maxima Online: http://maxima-online.org/?inc=r78755656

Ein Beispiel für das Zahlensystem mit der Basis 6 mit einem verbesserten Algorithmus:
http://maxima-online.org/?inc=r1035833127

Insertion Sort

Einleitung:
Grundkompetenzen
sind Lesen, Schreiben, Rechnen und Ordnen. Rechnen ist wohl die Grundaufgabe eines Computers. Schreiben hat mich zum Kauf des ersten Computers veranlasst. Lesen kann der Computer auch schon perfekt. Und der Wunsch nach Ordnung hat dazu geführt, dass man beim Programmieren von Anfang an über Sortieralgorithmen nachdenken musste. Ein solcher Algorithmus wird hier behandelt.

Quelle (für Insertion Sort): https://www.youtube.com/watch?v=JPyuH4qXLZ0

Programmcode:

A:[3,2,5,1,10,8];
for i:2 thru length(A) do
block(
wert:A[i],
j:i,
while j>1 and A[j-1]>wert do
block(
A[j]:A[j-1],
j:j-1,
A[j]:wert
)
);
A;

Ausführung mit Maxima Online: http://maxima-online.org/?inc=r-1715728250

Zum Nachlesen: http://de.wikipedia.org/wiki/Insertionsort