Alt 27.06.2011, 08:57:20   #1 (permalink)
hh-student.de
Benutzerbild von Split1989

ID: 238425
Lose-Remote

Reg: 09.04.2007
Beiträge: 1.133
Split1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein Lichtblick
Standard Relationen

HI Leute soll ein Prog für die Uni schreiben das Relationen erzeugt und dann auf ihre eigenschaften hin prüft... bin gerade dabei auf trasitivität zu prüfen und frage mich gerade ob folgende Telationen transitiv sind

R:={(a,b),(b,c),(a,c)} transitiv laut meinen Script
R:={(b,c),(c,d),(b,d)} transitiv laut meinen Script
R:={(a,b),(b,c),(a,c),(c,d),(b,d)} NICHT transitiv ??

falsch gecoded oder einfach nur mathe nicht richtig verstanden und zufällig doch richtiger code
Split1989 ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 27.06.2011, 10:04:08   #2 (permalink)
Erfahrener Benutzer
Benutzerbild von DeadMansHorror

DeadMansHorror eine Nachricht über ICQ schicken
Reg: 16.04.2007
Beiträge: 3.865
DeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes Ansehen
Standard

So ist keine Relation definiert. Ok, du hast deine Menge definiert, auf der die Relation gelten soll, aber was steht wann in Relation?

Nach Transitivität gilt, wenn (a,b) und (b,c) in Relation stehen stehen auch (a,c) in Realation, ob das so ist kannst du aber nur prüfen, wenn du eine Bedingung deiner Relation hast. Wenn einfach alles zu allem in Relation steht, dann ist diese Relation natürlich Transitiv.

Einfaches Beispiel: Auf der Menge der Menschen ist Freundschaft nicht transitiv, Verwandtschaft aber sehr wohl.

EDIT: Oder sollen die Toubel jeweils angeben, dass genau diese Elemente in Realtion stehen?
DeadMansHorror ist offline   Mit Zitat antworten
Alt 27.06.2011, 10:24:05   #3 (permalink)
hh-student.de
Benutzerbild von Split1989

ID: 238425
Lose-Remote

Reg: 09.04.2007
Beiträge: 1.133
Split1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein Lichtblick
Standard

richtig (dein edit)

edit: ahh sehe gerade das (a,d) fehlt nu klappt das auch dank dir trotzdem
Split1989 ist offline Threadstarter   Mit Zitat antworten
Alt 27.06.2011, 20:50:17   #4 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.472
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

@DeadMansHorror:
Natürlich sind die obigen Definitionen Relationen.

Eine Relation ist nix weiter als eine Teilmenge des Kreuzprodukts zweier Mengen, formal
(Wikipedia)

@Split1989:
Der Neugier halber: Wie funktioniert das Programm? Probierst du alle Möglichkeiten aus oder gibts hierfür einen clevereren Algorithmus?
theHacker ist offline   Mit Zitat antworten
Alt 27.06.2011, 21:05:32   #5 (permalink)
hh-student.de
Benutzerbild von Split1989

ID: 238425
Lose-Remote

Reg: 09.04.2007
Beiträge: 1.133
Split1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein Lichtblick
Standard

eher ausprobiern... ich zeige dir mal den code schnipsel..

[(a,b),(b,c),(a,c),(c,d),(b,d)]

er itteriert über @relation(instanzvariable) und guckt ob zb es ein paar zu (a,b) giebt, wenn ja dann guckt er ob es auch (a,c) enthalten ist .... das macht er mit allen elementen . wenn nur 1 mal false geliefert wird ist es halt nicht transetiv

achja ist in ruby gecoded =)

Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
# wenn a,b und b,c dann auch a,c def transitiv?() @relation.all? do |paar| @relation.all? do |paar2| if(paar[1]==paar2[0]) @relation.include?(Paar.new(paar[0],paar2[1])) else true end end end end

hoffe es ist verständlich sonst versuche ich es mal zu kommentieren ^^
Split1989 ist offline Threadstarter   Mit Zitat antworten
Alt 27.06.2011, 21:15:11   #6 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.472
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Ok, mein erster Ruby-Code, den ich zu Gesicht bekommen hab, aber nach ein paar Minuten kann ich ihn lesen.
Mich irritiert bloß das "else true", aber wird wohl Syntax sein, die ich ned kenn.
theHacker ist offline   Mit Zitat antworten
Alt 27.06.2011, 21:17:28   #7 (permalink)
hh-student.de
Benutzerbild von Split1989

ID: 238425
Lose-Remote

Reg: 09.04.2007
Beiträge: 1.133
Split1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein Lichtblick
Standard

also wenn zu (a,b) kein pärchen (b,c) exestiert muss er garnicht nach (a,c) gucken, also macht er return true

bei ruby kann man blos das return weglassen
Split1989 ist offline Threadstarter   Mit Zitat antworten
Alt 27.06.2011, 21:45:05   #8 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.472
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Aso. Jo, logisch.

Interessant wär, ob dein Programm auch mit folgender Relation zurecht kommt:
R := {(a, a)}

aRa ∧ aRa ⇒ aRa (w), also R transitiv
theHacker ist offline   Mit Zitat antworten
Alt 27.06.2011, 23:17:50   #9 (permalink)
Erfahrener Benutzer
Benutzerbild von DeadMansHorror

DeadMansHorror eine Nachricht über ICQ schicken
Reg: 16.04.2007
Beiträge: 3.865
DeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes AnsehenDeadMansHorror genießt hohes Ansehen
Standard

Zitat:
Zitat von theHacker Beitrag anzeigen
@DeadMansHorror:
Natürlich sind die obigen Definitionen Relationen.
Ja, wenn man es so ließt - deshalb ja auch mein Edit.

Ich hab es nur so gelesen, dass er auf der Menge R eine Relation haben möchte (was dann in der Definition von wikipedia eine Teilmenge vom RxR wäre) und dann fehlt eindeutig eine Relationsdefinition.
Das liegt sicherlich daran, dass ich Relation bisher eher nur in einer Menge betrachtet habe, also bsp. Relationen in den reellen Zahlen oder so und nicht Relationen zwischen verschiedenen Mengen. Dann war die Definition eher:
x~y :<=> x = |y| (~ ist das Zeichen, was ich verwende für "steht in Relation zu")
mal als banales Beispiel.
DeadMansHorror ist offline   Mit Zitat antworten
Alt 27.06.2011, 23:23:39   #10 (permalink)
hh-student.de
Benutzerbild von Split1989

ID: 238425
Lose-Remote

Reg: 09.04.2007
Beiträge: 1.133
Split1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein Lichtblick
Standard

R:={(a,a)}
true

muss ja ... er sieht (a,a) und an 2ter stelle ist ein "a" dann guckt er in der gleichen relation ob es ein paar gibt das an erster stelle ein "a" hat findet (a,a)
dies hat an zweiter stelle ein "a" also sucht er nach (a,a) und wird fündig
Split1989 ist offline Threadstarter   Mit Zitat antworten
Alt 28.06.2011, 06:36:19   #11 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.472
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Zitat:
Zitat von DeadMansHorror Beitrag anzeigen
Das liegt sicherlich daran, dass ich Relation bisher eher nur in einer Menge betrachtet habe, also bsp. Relationen in den reellen Zahlen oder so[...]
Achso. Hier fehlen halt die eigentlichen Menge A und B, die hier A=B={a, b, c, d, ...} wären.
Zitat:
Zitat von Split1989 Beitrag anzeigen
muss ja ...
Muss nicht. Ich kenn die Funktion von Ruby ja nicht. Hätte ja sein können, dass dieses .include ein Element nicht findet, was aus Referenzen(?) von sich selbst aufgebaut is. Drum dieser Versuch.

Noch cooler is folgende transitive Relation: R:={}
theHacker ist offline   Mit Zitat antworten
Alt 28.06.2011, 08:59:58   #12 (permalink)
hh-student.de
Benutzerbild von Split1989

ID: 238425
Lose-Remote

Reg: 09.04.2007
Beiträge: 1.133
Split1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein LichtblickSplit1989 ist ein Lichtblick
Standard

R:={}
true

scheint wohl ganz gut umgesetzt zu sein .... hätte ich anfangs selber nicht gedacht hehe

teste auserdem auch noch auf

reflexiv?()
symmetrisch?()
asymmetrisch?()
anti_symmetrisch?()
transitiv?()
rechts_eindeutig?()
rechts_total?()
links_total?()
reflexiver_abschluss()
symmetrischer_abschluss()
transitiver_abschluss()

wenn du zeit findest kann du ja vllt noch einpaar dieser trickreichen relationen posten die einem nicht auf anhieb einfallen

Geändert von Split1989 (28.06.2011 um 11:05:14 Uhr)
Split1989 ist offline Threadstarter   Mit Zitat antworten
Alt 28.06.2011, 17:17:36   #13 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.472
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Die tückischen sind halt die "Spezialfälle", die durch die Programmierung aufkommen. Die Eigenschaften selber sind ja eindeutig definiert.
theHacker ist offline   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26:40 Uhr.