Seiten: 1 2 3 |
HëllRÆZØR
Beiträge: 666
Registriert seit: 12.7.2007
Wohnort: NRW
Mitglied ist Offline
Motto: Ground Zero - auf ein Neues!
|
Verfasst am: 1.12.2006 um 23:46 |
|
|
Zitat | Original von Maria
Und bei den Quadraten brauchst du ganzzahlige Lösungen @Yog. |
Ah verstehe, wahrscheinlich müssen die Quadrate nicht mal gleich groß sein...
...also z.B. die 15 kann ich als 9 + 4 + 1 + 1 darstellen, aber nicht mit 3 Quadraten. Der Beweis, dass es mit 3 Quadraten nicht klappt ist ja nicht
sonderlich schwer, allerdings fällt mir so spontan kein Beweis dafür, dass es mit 4 Quadraten funktioniert ein. Vielleicht hilft da ja irgendwie
eine dieser beiden Formeln:
n^2 = (n - 1)^2 + (2n - 1)
n^2 = (n + 1)^2 - (2n + 1)
|
|
Xoc
Beiträge:
Registriert seit: 1.1.1970
Mitglied ist Offline
|
Verfasst am: 2.12.2006 um 05:06 |
|
|
Yog-Sothoth, ich meinte:
Für alle n aus N existieren a,b,c,d aus N mit a² + b² + c² + d² = n
So klar genug?
Der Beweis dafür ist nicht trivial.
Zitat |
Was man in diesem Forum nicht alles so lernt.
Da gibts dann hoffentlich auch Funktionen, die Funktionen, welche Funktionen auf Funktionen abbilden, auf Funktionen, die Funktionen auf Funktionen
abbilden, abbilden? grinsen
|
Ja, ja, klar gibt es die (bzw es gibt genau genommen nichts anderes)!
Und man kann auch die natürlichen Zahl und die Rechenoperationen darauf erstaunlich elegant ausdrücken (Wobei die Zahlen selbst natürlich auch nur
Funktionen sind):
0 := sz.z
succ := nsz.s(nsz)
add := nm.m(nsz.s(nsz))n
mul := fgx.f(gx)
pow := nm.mn
Fertig. Toll, nicht?
Syntax und Semantik gibts bei Interesse.
Zitat |
Man kann von sich auf andere schließen und deshalb annehmen, sie hätten ein Bewusstsein, aber man kann ebenso auf einem solipsitischen Standpunkt
beharren.
|
Ich halte Solipsismus nur für eine unpraktische Umformulierung.
Wenn ich das in meinen Kopf die Welt nennen möchte, die sich aber trozdem nach genau solchen Regeln verhält, als sei sie Wahrnehmung einer externen
Welt, dann kann ich es auch gleich entsprechend umbennen und bin den Solipsismus wieder los ohne auf irgendeine echte Erkenntis verzichten zu
müssen.
Zitat |
Zumindest das lässt nicht unbedingt auf Bewusstsein und Erleben schließen. Du könntest das auch nur rein instinktiv tun, weil der Geruch von
Scheiße auf Fäulnis hindeutet, die auf Keime hindeutet, die dir gefährlich werden könnten.
|
Ja richtig. Aber einen Rechner etwas bestimmtes berechnen lassen lässt auch nicht auf Turingvollständigkeit schliessen. Man kann immer behaupten, es
sei nur eine Spezialfunktion (irgendwann wird es dann nur unplausibel so viele Spezialfunktionen anzunehmen).
Und im Falle des Gehirns habe ich leider weder eine formale Definition für Bewusstsein noch bin ich in den Lage ein Gehirn formal darzustellen. Ich
denke aber, beides ist theoretisch möglich.
Bis die Computer kamen, dachten die Menschen ja auch noch, Multiplizieren und Schach spielen bräuchte Geist :D
Xoc
|
|
Xoc
Beiträge:
Registriert seit: 1.1.1970
Mitglied ist Offline
|
Verfasst am: 2.12.2006 um 05:40 |
|
|
Ach ja Yog-Sothoth, mit dem hier bist du nicht identisch, oder?
http://forum.ingame.de/warcraft/member.php?s=dbe2661cbbbbb0d8cf9a2dd1f2915cb9&action=getinfo&find=lastposter&forumid=986
|
|
HëllRÆZØR
Beiträge: 666
Registriert seit: 12.7.2007
Wohnort: NRW
Mitglied ist Offline
Motto: Ground Zero - auf ein Neues!
|
Verfasst am: 2.12.2006 um 15:32 |
|
|
Zitat | Original von Xoc
Yog-Sothoth, ich meinte:
Für alle n aus N existieren a,b,c,d aus N mit a² + b² + c² + d² = n
So klar genug?
Der Beweis dafür ist nicht trivial. |
Ja, so dachte ich mir das nachher auch, wobei du mit N Probleme kriegen wirst, nimm besser N U {0} :24: (großartiger Smiley ^^)
Der Beweis würde mich aber schon interessieren...
Studierst du eigentlich Informatik, oder bist du bereits fertig? (oder woher kommt dein Know-How?) Ich selbst studiere Informatik in Bonn, 5. Semester
(mit Nebenfach Musikwissenschaften ^^).
|
|
Xoc
Beiträge:
Registriert seit: 1.1.1970
Mitglied ist Offline
|
Verfasst am: 2.12.2006 um 16:39 |
|
|
Zitat | Original von Yog-Sothoth
Ja, so dachte ich mir das nachher auch, wobei du mit N Probleme kriegen wirst, nimm besser N U {0}
|
Es gilt grundsätzliche 0 Element von N, wenn ich dieses N schreibe und nichts anderes sage.
Ich bin Infromatikstudent, da fängt man eh bei 0 mit dem Zählen an, ihr nicht?
Ausserdem ist es doof, wenn das neutrale Element der Addition nicht dabei ist...
Zitat |
Der Beweis würde mich aber schon interessieren...
|
Der Beweis übersteigt den Umfang dessen, was ich hier diskutieren würde:
Ein ganz guter Link dazu: http://lsgm.uni-leipzig.de/KoSemNet/pdf/schueler-01-2.pdf
Zitat |
Studierst du eigentlich Informatik, oder bist du bereits fertig? (oder woher kommt dein Know-How?) Ich selbst studiere Informatik in Bonn, 5. Semester
(mit Nebenfach Musikwissenschaften ^^).
|
Ich studiere Informatik in HH. Mein Wissen kommt aber zu einem guten Teil vor allem daher, dass mich so Zeug interessiert und ich es mir deswegen
aneigne.
Xoc
|
|
Ina
Beiträge: 1162
Registriert seit: 12.7.2007
Mitglied ist Offline
Motto: Kein Motto
|
Verfasst am: 2.12.2006 um 17:26 |
|
|
Na gut, @Xoc, was das Bewusstsein und so angeht, sind wir wohl echt allmählich an einem Punkt angelangt, wo wir abwarten müssen, was die
Hirnforschung bringt. Irgendwelche Spekulationen von uns, wie das sein könnte, und Einwände dazu und Gegeneinwände, bringen uns da jetzt nimmer
groß weiter.
Immerhin scheinen wir uns einig zu sein, dass da nicht alles klar ist und mit einem halbwegs simplen Modell dargestellt werden kann.
Aber der Informatikkram sieht nett aus.
Zitat |
Und man kann auch die natürlichen Zahl und die Rechenoperationen darauf erstaunlich elegant ausdrücken (Wobei die Zahlen selbst natürlich auch nur
Funktionen sind):
0 := sz.z
succ := nsz.s(nsz)
add := nm.m(nsz.s(nsz))n
mul := fgx.f(gx)
pow := nm.mn
Fertig. Toll, nicht?
Syntax und Semantik gibts bei Interesse.
|
Ok, ich gestehs: ich hab mich um die Informatik gedrückt. Und ich kapier nix mehr :D
Ich will jetzt wissen, wie das geht. Haste da Nerv für mich?
Was ist "succ"?? Hochzählen? Soll das da irgenwie rekursiv sein?
Und dann "add" gleich m-mal hochzählen von n ausgehend?
Nö, ich hab nicht wirklich nen Schimmer, was das da soll.
|
|
Xoc
Beiträge:
Registriert seit: 1.1.1970
Mitglied ist Offline
|
Verfasst am: 2.12.2006 um 18:12 |
|
|
Zitat |
Ok, ich gestehs: ich hab mich um die Informatik gedrückt. Und ich kapier nix mehr grinsen
|
Das ist eigentlich ganz einfach und trivial (zumindest Syntax und Semantik), ich bin mir sicher, dass du es verstehen wirst.
Zitat |
Ich will jetzt wissen, wie das geht. Haste da Nerv für mich?
|
Klar, ich erkläre gerne.
Zitat |
Was ist "succ"?? Hochzählen? Soll das da irgenwie rekursiv sein?
Und dann "add" gleich m-mal hochzählen von n ausgehend?
Nö, ich hab nicht wirklich nen Schimmer, was das da soll.
|
successor (Nachfolger), addition, multiplication, power (Potenz)
Also, erstmal zum Syntax, ich verzichte auf streng formale Definition, ich denke es wird klar, was ich meine.
Folgende Konventionen bezüglich Klammern gelten:
abcd steht für (((ab)c)d)
Für beliebige Ausdrücke A gilt:
abcd.A steht für (a.(b.(c.(d.A))))
(fx) ist die Funktionsapplikation der Funktion f mit Parameter x.
In "normaler" Matheschreibweise würde man f(x) schreiben.
x.A ist die Definition einer (anonymen) Funktion mit Parameter x durch den Ausdruck A.
In "normaler" Matheschreibweise würde man f(x) := A schreiben (Wir haben allerdings im Lambdakalkül keinen Namen f für die Funktion, der Ausdruck
selbst ist die Funktion).
Das wars auch schon.
Die Semantik ist die übliche:
Das heisst, (x.A)y wird ausgewertet zu A[x/y]. A[x/y] heisst, dass im Ausdruck A alle freien (nicht durch andere Lambda ("") gebundenen) Vorkommen von x durch y ersetzt werden.
Variablennamen sind auch wie üblich Schall und Rauch, dürfen also beliebig umbenannt werden solange sie oder andere dadurch nicht an ein anderes
Lambda gebunden werden.
Ja, das ist tatsächlich turingvollständig.
Beispiele zur Semantik:
x.x ist die Indentitätfunktion.
(nsz.s(nsz))(sz.z) =>
sz.s((sz.z)sz) =>
sz.s((z.z)z) =>
sz.s(z)
Der Vorgänger ist übrigens nicht ganz so elegant und nur etwas trickreich zu definieren, geht aber
Xoc
|
|
HëllRÆZØR
Beiträge: 666
Registriert seit: 12.7.2007
Wohnort: NRW
Mitglied ist Offline
Motto: Ground Zero - auf ein Neues!
|
Verfasst am: 2.12.2006 um 18:54 |
|
|
@Xoc: Ich muss zugeben dass es mir ein wenig auf die Nerven geht wenn Mathematiker und Informatiker Begriffe wie "N" oder "Log" unterschiedlich
interpretieren, in solchen Fällen bin ich eher für einen Konsens, und da richte ich mich eher nach der Mathematik (wobei man sich bei N ausgiebig
drüber streiten kann, was sinnvoller ist ^^). Danke übrigens für den Link, ist ganz schön umfangreich...
@Maria: Keine Sorge, das Lambda-Kalkül kam bei uns auch nur mal so am Rande in Info I vor, in der Klausur hab' ich darauf gesetzt dass stattdessen
das Hoare-Kalkül drankam, und siehe da. ^^
|
|
Xoc
Beiträge:
Registriert seit: 1.1.1970
Mitglied ist Offline
|
Verfasst am: 2.12.2006 um 19:15 |
|
|
Ok, Yog,
ich bin auch für Standards, also halten wir uns mal schön an DIN Norm 5473. :D
Und das Lambda so wenig dran kommt finde ich eher traurig, das ist ein echter Leckerbissen.
|
|
HëllRÆZØR
Beiträge: 666
Registriert seit: 12.7.2007
Wohnort: NRW
Mitglied ist Offline
Motto: Ground Zero - auf ein Neues!
|
Verfasst am: 2.12.2006 um 19:40 |
|
|
Zitat | Original von Xoc
Ok, Yog,
ich bin auch für Standards, also halten wir uns mal schön an DIN Norm 5473. :D |
Seltsam, ich hatte immer angenommen der Konsens sei ohne 0...na gut, einigen wir uns halt auf 0 Element N ^^
Zitat | Original von XocUnd das Lambda so wenig dran kommt finde ich eher traurig, das ist ein echter
Leckerbissen. |
Kann ich wenig beurteilen, das kam wirklich nur ganz grob und schlecht erklärt dran, und zu dem Zeitpunkt haben mich andere Sachen eher interessiert
- z.B. die Bezüge zwischen Mathematik und musikalischer Harmonielehre. ^^
|
|
Ina
Beiträge: 1162
Registriert seit: 12.7.2007
Mitglied ist Offline
Motto: Kein Motto
|
Verfasst am: 3.12.2006 um 00:23 |
|
|
Zitat | Seltsam, ich hatte immer angenommen der Konsens sei ohne 0...na gut, einigen wir uns halt auf 0 Element N
^^ |
Da gibts gar keinen Konsens.
Haltet euch lieber nicht zu lange damit auf, sonst endet ihr wie dieser Mathematiker, der fanatischer Verfechter der "mit 0"-Definition war und
deshalb im Krankenhaus bei der Narkose strikt 0...1...2...3.. gezählt hat
@Lambda-Kram:
Zitat | (nsz.s(nsz))(sz.z) =>
sz.s((sz.z)sz) =>
sz.s((z.z)z) =>
sz.s(z) |
ok, wenn (x.A)yz = ((x.A)y)z ist, nehm ich dir das ab.
Man könnte sich auch die dritte Zeile sparen und sagen: (sz.z)sz heißt, dass im Ausdruck z alle sz durch sz ersetzt werden, so dass dann nur noch z
dasteht, oder?
Und man darf man das Ergebnis auch als sz.sz schreiben, oder?
Ich schau dann mal, was die 2 ist:
(nsz.s(nsz))(sz.s(z)) => (warum schreibt ihr da nicht "=" ?
sz.s((sz.s(z))sz) =>
sz.s((z.s(z))z) =>
sz.s(s(z))
bzw.
(nsz.s(nsz))(sz.sz) =>
sz.s((sz.sz)sz) =>
sz.s(sz)
also:
0 = sz.z
1 = sz.s(z)
2 = sz.s(s(z))
sieht gut aus
die 3 noch:
(nsz.s(nsz))(sz.s(s(z))) =>
sz.s((sz.s(s(z)))sz) =>
sz.s((z.s(s(z)))z) =>
sz.s(s(s(z))
bzw.
(nsz.s(nsz))(sz.s(sz)) =>
sz.s((sz.s(sz))sz) =>
sz.s(s(sz))
*strahl*
Oder doch nicht, das war ja erst der Nachfolger...
Irgendwie verwirrt es mich jetzt doch. Geh ich richtig in der Annahme, dass witzigerweise (x.A)yz = ((x.A)y)z = (x.A)(yz) ist, aber
x.mn = (x.m)n der absolute Schwachsinn ist (weil mir so bei der Potenz irgendwie die Identität rauskommt), also hier strikt
x.mn = x.(mn) gilt?
Na für heute reicht mir das erstmal, bloß eins noch, ist dann bei der Addition
nm.m(nsz.s(nsz))n = nm.m((nsz.s(nsz))n) oder
nm.m(nsz.s(nsz))n = nm.(m(nsz.s(nsz)))n ?
(Spontan kommt mir die zweite Version schwachsinniger vor, aber es ist schon zu spät am Abend, als dass das was heißen würde)
|
|
Xoc
Beiträge:
Registriert seit: 1.1.1970
Mitglied ist Offline
|
Verfasst am: 3.12.2006 um 03:51 |
|
|
Zitat | (nsz.s(nsz))(sz.z) =>
sz.s((sz.z)sz) =>
sz.s((z.z)z) =>
sz.s(z)
ok, wenn (x.A)yz = ((x.A)y)z ist, nehm ich dir das ab. |
Korrekt.
Zitat | Man könnte sich auch die dritte Zeile sparen und sagen: (sz.z)sz heißt, dass im Ausdruck z alle sz durch sz ersetzt werden,
so dass dann nur noch z dasteht, oder?
Und man darf man das Ergebnis auch als sz.sz schreiben, oder? |
Beides korrekt.
Zitat |
(nsz.s(nsz))(sz.s(z)) => (warum schreibt ihr da nicht "=" ?
sz.s((sz.s(z))sz) =>
sz.s((z.s(z))z) =>
sz.s(s(z))
|
Die Auswertung der Applikation ist nur in die eine Richtung definiert. Wenn sie weg ist, ist sie weg, die kriegst du nicht wieder rein, ohne
zusätzliche Regeln.
Gleichheit ist genau genommen noch gar nicht definiert, deswegen wollte ich es auch nicht verwenden. Wobei man schon mit einer gewissen Berechtigung
da auch ein gleich scheiben kann.
Zitat |
0 = sz.z
1 = sz.s(z)
2 = sz.s(s(z))
sieht gut aus
|
Ist genauso richtig, wie es gut aussieht. Die Klammern um das z sind natürlich weglassbar. Ich denke, wir können uns darauf einigen Klammen einfach
nach Lust und Laune zu schreiben, solange es gut lesbar und eindeutig bleibt.
Und man darf natürlich auch in einem Schritt reduzieren, wenn es eh klar ist wie bei mehreren Parametern hintereinander (Wollte ich nur nicht machen,
damit die einzelnen Schritte erkennbar sind).
Sematisch kann man die natürlichen Zahlen, wie du vielleicht schon erkannt hast, so interpetieren, dass eine natürlich Zahl n eine Funktion mit zwei
Parametern ist, die den ersten Parameter(eine Funktion, was sonst) n mal auf den zweiten anwendet.
Zitat |
*strahl*
Oder doch nicht, das war ja erst der Nachfolger...
|
Dein Verständnis ist doch gut soweit
Zitat |
Irgendwie verwirrt es mich jetzt doch. Geh ich richtig in der Annahme, dass witzigerweise (x.A)yz = ((x.A)y)z = (x.A)(yz) ist, aber
x.mn = (x.m)n der absolute Schwachsinn ist (weil mir so bei der Potenz irgendwie die Identität rauskommt), also hier strikt
x.mn = x.(mn) gilt?
|
Genau. Das erste ist richtig, das zweite Schwachsinn.
x.A ist immer als x.(A) zu interpretieren.
Zitat |
Na für heute reicht mir das erstmal, bloß eins noch, ist dann bei der Addition
nm.m(nsz.s(nsz))n = nm.m((nsz.s(nsz))n) oder
nm.m(nsz.s(nsz))n = nm.(m(nsz.s(nsz)))n ?
(Spontan kommt mir die zweite Version schwachsinniger vor, aber es ist schon zu spät am Abend, als dass das was heißen
würde) |
nm.m(nsz.s(nsz))n = nm.(m(nsz.s(nsz)))n
ist richtig.
Das ist ja Applikation, das wird explizit (((ab)c)e)d geklammert.
Die implizite Klammerung ist übrigens genau so gewählt, dass man so schreiben kann, als hätte man Funktionen mit mehreren Parametern und braucht
dafür keine Klammern.
Viel Spass mit dem weiteren
Xoc
|
|
Ina
Beiträge: 1162
Registriert seit: 12.7.2007
Mitglied ist Offline
Motto: Kein Motto
|
Verfasst am: 3.12.2006 um 22:58 |
|
|
1+1 will bei mir einfach nicht 2 sein
Bei (nm.(m(nsz.s(nsz)))n)(sz.sz)(sz.sz)
kommt mir nicht sz.s(sz) raus.
(Oder stimmt aus mir unerfindlichen Gründen der Ansatz nicht?)
Möglicherweise scheitere ich irgendwo an dem "frei" in
Zitat | Das heisst, (x.A)y wird ausgewertet zu A[x/y]. A[x/y] heisst, dass im Ausdruck A alle freien (nicht durch andere Lambda ("") gebundenen) Vorkommen von x durch y ersetzt
werden. |
Kann mich natürlich auch nur hartnäckig verrechnet haben, weil ich irgendeine Klammerung nicht richtig peile oder sowas.
Ich könnte dich jetzt freilich mit ca. 4 Versionen (je nach der Interpretation von "frei") meiner falschen Berechnungen konfrontieren, wo du dann
die Fehler suchen darfst, aber ich glaube, es wäre einfacher, wenn du mit gutem Beispiel vorangehst
Würdest du mir vielleicht
(nm.(m(nsz.s(nsz)))n)(sz.sz)(sz.sz) vorrechnen, damit ich das mal sehe?
|
|
Xoc
Beiträge:
Registriert seit: 1.1.1970
Mitglied ist Offline
|
Verfasst am: 4.12.2006 um 00:09 |
|
|
Zitat | Original von Maria
1+1 will bei mir einfach nicht 2 sein
Bei (nm.(m(nsz.s(nsz)))n)(sz.sz)(sz.sz)
kommt mir nicht sz.s(sz) raus.
(Oder stimmt aus mir unerfindlichen Gründen der Ansatz nicht?)
|
Der ist völlig richtig.
Zitat |
Möglicherweise scheitere ich irgendwo an dem "frei"
|
Ok, ich führe das mal komplett formal aus, das sollte alle Unklarheiten beseitigen.
Für alle Ausdrücke A, B und Symbole x, y, z mit z != x und z != y gilt:
(x.A)y => (A[x/y]) (x.A) => (y.(A[x/y]))
(AB)[x/y] => (A[x/y])(B[x/y]) (x.A)[x/y] => (x.A)
(z.A)[x/y] => (z.(A[x/y])) x[x/y] => y
y[x/y] => y z[x/y] => z
Und mehr als das gilt nicht.
Zitat |
Würdest du mir vielleicht
(nm.(m(nsz.s(nsz)))n)(sz.sz)(sz.sz) vorrechnen, damit ich das mal sehe? |
Die eine zusätzliche Klammer ist richtig, allerdings mag ich sie nicht, deswegen lasse ich sie weg:
(nm.m(nsz.s(nsz))n)(sz.sz)(sz.sz) =>
(sz.sz)(nsz.s(nsz))(sz.sz) =>
(nsz.s(nsz))(sz.sz) => (ab hier sollte es bekannt sein)
(sz.s((sz.sz)sz)) =>
(sz.s(sz))
Bei mir ist 1+1 also tatsächlich 2. :D
|
|
Ina
Beiträge: 1162
Registriert seit: 12.7.2007
Mitglied ist Offline
Motto: Kein Motto
|
Verfasst am: 4.12.2006 um 00:53 |
|
|
Zitat |
(sz.sz)(nsz.s(nsz))(sz.sz) =>
(nsz.s(nsz))(sz.sz) |
bei dem Schritt habe ich gedacht, (nsz.s(nsz)) sei nur eine Variable und hab die bloß für s eingesetzt.
Gibt dann irgendwie Schwachsinn:
(sz.sz)(nsz.s(nsz))(sz.sz) =>
(z.(nsz.s(nsz))z)(sz.sz) =>
(z.(sz.s(zsz)))(sz.sz) =>
sz.s(zsz) (wenn die z hier, wie das n oben, durch das "" "gebunden" sind)
Ich hab eben null Übung in dieser speziellen Rechnerei. Aber das Prinzip ist mir jetzt klar, man hat die Ausdrücke, die man dann auf die "Zahlen"
loslässt. Und die Ausdrücke sind so gebastelt, dass die "Zahlen", die rauskommen, der Nachfolger/die Summe/das Produkt/die Potenz sind.
Alles gar nicht so kryptisch, wie es aussieht.
Ne nette Sache, man kann die ungeheuren mathematischen Fragwürdigkeiten der Volkschulmathematik wie 1+1=2 usw. perfekt logisch aufbauen (ich brauch
den halb_Ironie_halb_Verehrungs-Smilie :D )
|
|
Xoc
Beiträge:
Registriert seit: 1.1.1970
Mitglied ist Offline
|
Verfasst am: 4.12.2006 um 01:49 |
|
|
Zitat |
Gibt dann irgendwie Schwachsinn:
(sz.sz)(nsz.s(nsz))(sz.sz) =>
(z.(nsz.s(nsz))z)(sz.sz) =>
|
Soweit richtig.
Zitat |
(z.(sz.s(zsz)))(sz.sz) =>
|
Das ist der Fehler.
Formal haben wir:
(nsz.s(nsz))z =>
(sz.s(nsz))[n/z] => (s.(z.s(nsz)[n/z])
Und das wars, weiter kommt man mit keiner Regel
(x.A)[x/y] => (x.A) (z.A)[x/y] => (z.(A[x/y]))
Wegen Voraussetzung z != y und für y.A ist es nicht definiert:
Scheint doch leichter zu sein, ohne formale Definition etwas falsch zu machen, als ich dachte.
Zitat |
Aber das Prinzip ist mir jetzt klar, man hat die Ausdrücke, die man dann auf die "Zahlen" loslässt. Und die Ausdrücke sind so gebastelt, dass die
"Zahlen", die rauskommen, der Nachfolger/die Summe/das Produkt/die Potenz sind.
Alles gar nicht so kryptisch, wie es aussieht.
|
Jo, wobei ich es gar nicht so einfach finde auf die elementaren Dinge (Zahlen, Datenstrukturen, Logik, Rekursionen) zu kommen, alle Achtung vor denen,
die das als erstes gemacht habe. Das Nachvollziehen ist bedeutend leichter.
Wenn man die hat, lässt es sich allerdings erstaunlich angenehm programmieren (und nicht mal länger als üblicher Quellcode).
Genau genommen steht der Beweis, dass das Lambdakalkül tatsächlich turingvollständig ist auch noch aus (zumindest in diesem Thread), dafür müsste
man einen Ausdruck finden, der eine Turingmaschine simmulieren kann.
Zitat |
Ne nette Sache, man kann die ungeheuren mathematischen Fragwürdigkeiten der Volkschulmathematik wie 1+1=2 usw. perfekt logisch aufbauen (ich brauch
den halb_Ironie_halb_Verehrungs-Smilie :D ) |
Schulemathe ist eh relativ doof (Deswegen bezeichne ich dieses Fach auch lieber als Rechnen, das trifft es öfters besser :12: ).
Da lernt man Analysis und so Zeug, ohne, dass man das Werkzeug hat überhaupt zu definieren was genau Zahlen sind, geschweige denn Ableitungen oder
Integrale (oder wenn wird das eher halbherzig mal hingeknallt, zumindest bei den Personen, mit denen ich gesprochen habe).
Und wieso lernt man keine Logik in der Schule? Das ist weder praxisferner noch schwerer, noch weniger schön als Analysis...
Ach ja, wieviele stille Mitleser verfolgen unsere Diskussion über "eine vom Körper Unabhängige Seele" noch? :D
Xoc
|
|
HëllRÆZØR
Beiträge: 666
Registriert seit: 12.7.2007
Wohnort: NRW
Mitglied ist Offline
Motto: Ground Zero - auf ein Neues!
|
Verfasst am: 4.12.2006 um 03:43 |
|
|
Zitat | Original von Xoc
Und wieso lernt man keine Logik in der Schule? Das ist weder praxisferner noch schwerer, noch weniger schön als Analysis... |
Du triffst den Nagel auf den Kopf!
Dass sowas Grundlegendes nicht in der Schule vorkommt ist schon der Hammer! Vor allem wenn man an die ganzen Leute denkt die meinen, mit "Es gibt ein
x mit A(x)" beweisen zu können, dass A(x) allgemeingültig ist, oder die gerne mal irgendwelche Implikationen verdrehen. Oder wenn jemand meint eine
Aussage sei solange wahr, bis das Gegenteil bewiesen ist (woraus direkt folgen würde, dass, wenn der Wahrheitsgehalt von A(x) unbekannt ist, sowohl
A(x) als auch nicht A(x) wahr wären ^^).
Schon traurig...
|
|
Ina
Beiträge: 1162
Registriert seit: 12.7.2007
Mitglied ist Offline
Motto: Kein Motto
|
Verfasst am: 4.12.2006 um 12:47 |
|
|
Achso... :12:
Na ich hab stur ersetzt und nur gezögert, wenn ich meinte, das könnte nicht "frei" sein.
Zitat | Scheint doch leichter zu sein, ohne formale Definition etwas falsch zu machen, als ich dachte. |
Tja, das ist das Gute dran, man versteht sie zwar erst schlechter als "ersetze das durch das", aber alle Spezialfälle, wo die "Laberregel" nicht
greift, sind inbegriffen.
Zitat | Jo, wobei ich es gar nicht so einfach finde auf die elementaren Dinge (Zahlen, Datenstrukturen, Logik, Rekursionen) zu kommen,
alle Achtung vor denen, die das als erstes gemacht habe |
Natürlich ist das nicht einfach. Du kriegst da an der Uni in ein paar Jahren die komprimierten Erkenntnisse der brilliantesten Köpfe der letzten
paar Jahrhunderte aufgetischt.
Auf sowas würde man selber vielleicht kommen, wenn man sich jahrelang mit fast nix anderem bechäftigte, wie es die Erfinder dieser Dinge
wahrscheinlich auch getan haben.
Dabei ist man ja nicht eingeschräkt auf diese Definitionen, da muss es doch noch einen viel allgemeineren Rahmen geben. Das hier ist immer noch nur
ein Spezialfall, nur ein Beispiel.
Scheint ne verdammt mächtige Sache zu sein. Und das macht ihr mal schnell am Ende des 1. Semesters??
Habt ihr vielleicht zufällig nen brauchbaren Link zu dem Thema parat, also ein gutes Vorlesungsskript oder sowas? (Nicht dass ihr jetzt anfangt zu
googeln, das kann ich selber.)
Dann kann man hier auch wieder weiter über die Seele diskutieren
Wobei das hier gar nicht so unbrauchbar war, denn wenn der nächste da mit irgendwelchen Primitiv-Modellen ankommt, können wir sagen: Guck da mal
oben, das steht hinter ein bisschen primitiver Mathematik (wobei wir ja eigentlich gar nichts Richtiges dazu gemacht haben, also keine Beweise und so,
nur ein paar Beispiele ausgerechnet) - und du willst SO "die Seele" erklären :D
|
|
hopeless
Beiträge: 890
Registriert seit: 12.7.2007
Mitglied ist Offline
Motto: Kein Motto
|
Verfasst am: 4.12.2006 um 13:53 |
|
|
so ein bisschen logik haben wir in der zehnten klasse oder so sogar mal gemacht, aber auch sehr knapp und zusammenhang zum rest gabs auch kaum. ich
weiß nicht, wieviel sinn es macht, alle schüler mit so viel abstraktion zu bequatschen, wenn viele sich schon die zweite ableitung nichtmehr
bildlich vorstellen können, ein anderer teil versteht nicht, wo man beim playstation zocken geometrie braucht und der nächste malt lieber den sack
kartoffeln und singt ein lied dazu... schlechte beispiele, aber wer "mathe nicht braucht", der will auch nicht wissen, wie man ne zahl definiert.
|
|
Xoc
Beiträge:
Registriert seit: 1.1.1970
Mitglied ist Offline
|
Verfasst am: 4.12.2006 um 19:29 |
|
|
Zitat | Original von Maria
Achso... :12:
Na ich hab stur ersetzt und nur gezögert, wenn ich meinte, das könnte nicht "frei" sein.
|
Ach ja, das heisst natürlich nicht, dass es dort nicht weitergehen würde, man müsste aber erst mit (x.A) => (y.(A[x/y])) geeignete Variablen
umbenennen.
Zitat |
Tja, das ist das Gute dran, man versteht sie zwar erst schlechter als "ersetze das durch das", aber alle Spezialfälle, wo die "Laberregel" nicht
greift, sind inbegriffen.
|
Seh ich auch so.
Aber um es mit Gauss zu sagen:
Die meisten Menschen haben wenig Sinn für solche geisten Genüsse, die nur durch Anstrengung errungen werden können.
Zitat |
Dabei ist man ja nicht eingeschräkt auf diese Definitionen, da muss es doch noch einen viel allgemeineren Rahmen geben. Das hier ist immer noch nur
ein Spezialfall, nur ein Beispiel.
Scheint ne verdammt mächtige Sache zu sein. Und das macht ihr mal schnell am Ende des 1. Semesters??
|
Also wir nicht, wir hatten nur ein wenig funktionale Sprachen, die sind daraus abgeleitet.
Zitat |
Habt ihr vielleicht zufällig nen brauchbaren Link zu dem Thema parat, also ein gutes Vorlesungsskript oder sowas? (Nicht dass ihr jetzt
anfangt zu googeln, das kann ich selber.)
|
Nee, ich hatte mal ein pdf für die Grundlagen und habe mich dann selbst damit etwas ausführlicher beschäftigt.
Aber ich glaube es würde mich nun doch reizen tatsächlich mal eine komplette Turingmaschine damit zu konstruieren.
Mal ein wenig weiteres Handwerkszeug dazu:
Logik:
true := ab.a
false := ab.b
not := a.a false true
and := ab.(a (b true false) false)
or := ab.(a true (b true false))
Tupel:
tuple := abp.pab
first := p.p true
second := p.p false
Zahlenzeug:
pred := n.first(n(p.p(ab.tuple b (succ b))) (tuple 0 0))
sub := nm.m pred n
is0 := (n.n (x.false) true)
Rekursion:
recursion := f.(x.xx)(x.f(xx))
Macht eine Funktion f rekursiv und f bekommt diese rekursive Funktion als ersten Parameter übergeben.
Und das Band der Turing Maschine:
emptytape := recursion (f.tuple 0 f)
Anschaulich als (0,(0,(0,...)))
Also bloss nicht versuchen das komplett auszurechnen :D
get := tn.first (n (p.second p) t)
Das n-te Element von t
Code: |
set := tne.
(recursion(gtn.
(is0 n)
(tuple
e
(second t)
)
(tuple
(first t)
(g (second t) (pred n))
)
))tn |
Macht das n-te Element von t zu e.
Das reicht erstmal.
|
|
...
Beiträge: 4247
Registriert seit: 12.7.2007
Mitglied ist Offline
|
Verfasst am: 5.12.2006 um 05:11 |
|
|
Müsst Ihr über sowas diskutieren, wenn mein Server abgestürzt ist und ich auch so zu wenig Zeit habe, mir das mal alles in Ruhe durchzulesen.
Das Thema sollte irgendwann mal wieder aufgegriffen werden, spätestens, wenn ich in Rente gehe.
|
|
Seiten: 1 2 3 |
|