Algorithmus für kart. Produkt: als int [] Feld repräsentiert

easyJAVA?

Mitglied
Hallo!

hier die Aufgabenstellung, die wir bekommen haben:

Geben Sie einen Algorithmus (Java od. Pseudocode) zur Bestimmung des kartesischen Produkts zweier Mengen A und B an. Die beiden Mengen seien jeweils als int[]-Feld repräsentiert.
Hinweis: Das kartesische Produkt kombiniert jedes Element der einen Menge mit jedem Element der anderen Menge, d.h für A={a,b} und B={c,d,e} gilt:

A x B={(a,c),(a,d),(a,e),(b,c),(b,d),(b,e)}

das verursacht mir mehr kopfzerbrechen, als man denkt. Mein Ansatz sieht so aus:7

Java:
class Zeichenkette{ 
private char []z; //<- hier Zeichenkette rein, oder? 

public int laenge (){ 
int l=0; 
while (z[l]!= '\0'){
l++;
}
return l;
}
}

was meint ihr, ist das die richtige Richtung? mein Eclipse, zeigt mir wie so immer an, dass das Mist ist..
schreibe in 2Tagen eine Klausur und das war eine Übungsaufgabe, glaube zwar nicht, dass die drankommt, aber sicher ist sicher ;) So interessant ich das Gebiet auch finde, die Programmieraufgaben machen uns alle zu schaffen und wir setzen auf die Wissenfragen um die Klausur zu bestehen :D

habe im Netz eine Möglichkeit gefunden, dass mit einem Array zu machen:

Java:
public class Example {

    public static <T> List<Tuple<T>> cartesianProduct(List<Set<T>> sets) {
        List<Tuple<T>> tuples = new ArrayList<Tuple<T>>();

        for (Set<T> set : sets) {            
            if (tuples.isEmpty()) {
                for (T t : set) {
                    Tuple<T> tuple = new Tuple<T>();
                    tuple.add(t);    
                    tuples.add(tuple);
                }                
            } else {
                List<Tuple<T>> newTuples = new ArrayList<Tuple<T>>();

                for (Tuple<T> subTuple : tuples) {
                    for (T t : set) {
                        Tuple<T> tuple = new Tuple<T>();
                        tuple.addAll(subTuple);
                        tuple.add(t);
                        newTuples.add(tuple);
                    }
                }                

                tuples = newTuples;
            }
        }

        return tuples;
    }
}

wie könnte man das umschreiben, das man das als int[]-Feld schreiben kann?

Vielen Dank für eure Hilfe.
 

Michael...

Top Contributor
das verursacht mir mehr kopfzerbrechen, als man denkt. Mein Ansatz sieht so aus:7

Java:
class Zeichenkette{ 
private char []z; //<- hier Zeichenkette rein, oder? 

public int laenge (){ 
int l=0; 
while (z[l]!= '\0'){
l++;
}
return l;
}
}
Keine Ahnung was das mit der Aufgabenstellung zu tun hat aber die Länge eines Arrays lässt sich direkt mit
Code:
myArray.length
ermitteln.
habe im Netz eine Möglichkeit gefunden, dass mit einem Array zu machen:
Java:
public class Example {

    public static <T> List<Tuple<T>> cartesianProduct(List<Set<T>> sets) {
        List<Tuple<T>> tuples = new ArrayList<Tuple<T>>();

        for (Set<T> set : sets) {            
            if (tuples.isEmpty()) {
                for (T t : set) {
                    Tuple<T> tuple = new Tuple<T>();
                    tuple.add(t);    
                    tuples.add(tuple);
                }                
            } else {
                List<Tuple<T>> newTuples = new ArrayList<Tuple<T>>();

                for (Tuple<T> subTuple : tuples) {
                    for (T t : set) {
                        Tuple<T> tuple = new Tuple<T>();
                        tuple.addAll(subTuple);
                        tuple.add(t);
                        newTuples.add(tuple);
                    }
                }                

                tuples = newTuples;
            }
        }

        return tuples;
    }
}

wie könnte man das umschreiben, das man das als int[]-Feld schreiben kann?
?? Hab mir den Code nciht angeschaut, aber der ist doch viel zu komplex für die Aufgabenstellung. Die Aufgabe lässt sich doch mit einer simplen Verschachtelung zweier for-Schleifen lösen.
 

easyJAVA?

Mitglied
?? Hab mir den Code nciht angeschaut, aber der ist doch viel zu komplex für die Aufgabenstellung. Die Aufgabe lässt sich doch mit einer simplen Verschachtelung zweier for-Schleifen lösen.

Habe hier die Definition einer For-Schleife vor mir liegen:
"Die for-Schleife wiederholt einer Anweisung solange, wie eine Bedingung zutrifft."

Java:
//von der Struktur her:

for (Startwert(e); Abbruchbedingung;Aktualisierung(en))
{
Anweisungen
}

hmm ok, für dich scheint das einfach zu sein, aber ich habe keine Ahnung, wie mir das weiterhelfen kann?
und wie ich das int-Feld einbinden kann.

evtl in die Richtung:

Java:
for(int a, int b, int c, int d, int e; ??; a*c, a*d, a*e, b*c, b*d, b*e)
{
??
}

Ich hab da echt nicht viel Ahnung von. Muss irgendwas ganz simples sein, da unsere Programmierkenntnisse nicht sehr fortgeschritten sind...
 
S

SlaterB

Gast
du hast doch selber schon etwas in der Richtung
Java:
                for (Tuple<T> subTuple : tuples) {
                    for (T t : set) {
                        Tuple<T> tuple = new Tuple<T>();
                        tuple.addAll(subTuple);
                        tuple.add(t);
                        newTuples.add(tuple);
                    }
                }

eine Schleife geht über a, b,
die innere zweite Schleife über c, d, e

beim ersten äußeren Durchlauf wird demnach a erst mit c, dann mit d und schließlich e kombiniert,
danach dasselbe mit b


------

bevor du jetzt wieder "for(int c, int d, int e" postest löse wohl lieber erstmal folgende andere Aufgabe:
"füge drei Elemente c, d, e in eine Liste oder ein Array ein und gib sie mithilfe einer Schleife aus"
kannst du das?
wenn nicht dann erübrigt sich eh vorerst, über viel komplizierteres kartesisches Produkt zu reden
 
Zuletzt bearbeitet von einem Moderator:

easyJAVA?

Mitglied
du hast doch selber schon etwas in der Richtung

hab ich ja aus dem Netz :eek: deswegen verstehe ich es ja auch nicht...

bevor du jetzt wieder "for(int c, int d, int e" postest löse wohl lieber erstmal folgende andere Aufgabe:
"füge drei Elemente c, d, e in eine Liste oder ein Array ein und gib sie mithilfe einer Schleife aus"
kannst du das?
wenn nicht dann erübrigt sich eh vorerst, über viel komplizierteres kartesisches Produkt zu reden

hmm, aber wir sollen das doch mit einem int[]-Feld lösen und nicht mit einem Array?

aber um ehrlich zu sein, nein ich kann das nicht.

Könntest du nicht mir aufzeigen, wie du das mit einem int[]-Feld lösen würdest?

Ich weiß ist absolut nicht Sinn der Sache hier, aber wir haben Programmieren nur im 1.Semester und es ist auch nur ein Fach und danach haben wir mit nichts dergleichen zu tun. Deswegen versuchen wir Studenten, dank des tollen Profs den wir haben, die Klausur mit Wissenfragen (2/3 der Klausur) zu bestehen und typische Aufgaben, wie diese hier lernen wir halt auswendig, falls sie drankommen sollten. Wie ich oben schon erwähnt habe, an für sich ist Programmieren total interessant, aber so wie das unser Prof vermittelt, sinkt das Interesse rapide. Und innerhalb kurzer Zeit das lernen ist nicht drin. Java ist wie eine Sprache, man muss Stück für Stück fortschritte machen.

Deshalb versuche ich nun Crashkurs, lerne die Theorie und mögl. Programme einfach auswendig. :autsch:
 
S

SlaterB

Gast
> Könntest du nicht mir aufzeigen, wie du das mit einem int[]-Feld lösen würdest?

Galileo Computing :: Java ist auch eine Insel - 3 Klassen und Objekte
3.8 Arrays
(das ist kein Thema für 15 Min.)
(vielleicht lieber auch alle Kapitel davor von 2.2 angefangen..)

> Deshalb versuche ich nun Crashkurs, lerne die Theorie und mögl. Programme einfach auswendig.

immerhin ehrlich, besser als Wulff, aber ich zumindest mache nicht deine Aufgaben
 

tuttle64

Bekanntes Mitglied
> Könntest du nicht mir aufzeigen, wie du das mit einem int[]-Feld lösen würdest?

Galileo Computing :: Java ist auch eine Insel - 3 Klassen und Objekte
3.8 Arrays
(das ist kein Thema für 15 Min.)
(vielleicht lieber auch alle Kapitel davor von 2.2 angefangen..)

> Deshalb versuche ich nun Crashkurs, lerne die Theorie und mögl. Programme einfach auswendig.

immerhin ehrlich, besser als Wulff, aber ich zumindest mache nicht deine Aufgaben

Das Problem ist nicht die Java Programmierung sondern das die Indexe eines Array nur ints sind. Angenommen die Zahl 6 kommt in der ersten und zweiten Menge vor, z.B. int a=6 und int d = 6. Mit welchem Index sollen das kart. Produkt von a und d gespeichert werden?
 

Michael...

Top Contributor
Das Problem ist nicht die Java Programmierung sondern das die Indexe eines Array nur ints sind. Angenommen die Zahl 6 kommt in der ersten und zweiten Menge vor, z.B. int a=6 und int d = 6. Mit welchem Index sollen das kart. Produkt von a und d gespeichert werden?
:bahnhof:
Es geht hier doch nur um das kartesische Produkt zweier Mengen? Also die Kombination jedes Elements aus Menge A mit jedem Element aus Menge B. Was hat das mit "die Indexe eines Array nur ints sind" zu tun. Zumal hier ja auch Pseudo Code erlaubt ist.
 
H

hüteüberhüte

Gast
Oben ist ja ein Beispiel angegeben, du musst FÜR JEDES Element aus der ersten Menge, ÜBER ALLE Elemente der zweiten Menge iterieren und das "Tupel/geordnete Paar" in das Ergebnis eintragen. Klingt bisschen abstrakt, aber in Pseudocode wären das einfach zwei ineinander geschachtelte Schleifen. Das Ergebnis kann z.B. int[][]-Array sein.
 

tuttle64

Bekanntes Mitglied
Code:
		int[] a = { 1, 2, 3, 4 };
		int[] b = { 5, 6, 7 };
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < b.length; j++) {
				System.out
						.println("AxB=" + a[i] + "x" + b[j] + "=" + (a[i]*b[j]));
			}
		}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C negamax-Algorithmus für Tic-Tac-Toe spielt manchmal falsch Java Basics - Anfänger-Themen 10
M Minimax-Algorithmus für Vier gewinnt Java Basics - Anfänger-Themen 11
M monte carlo Algorithmus für 4 gewinnt Java Basics - Anfänger-Themen 12
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33
T Algorithmus für Index mit min-Wert Java Basics - Anfänger-Themen 2
A Datenstruktur für Savings Algorithmus und Planung von kleinen Programmierprojekten Java Basics - Anfänger-Themen 1
J Algorithmus für eine Reihe implementieren Java Basics - Anfänger-Themen 2
K Best Practice Algorithmus für Berechnung von Zahlenreihenfolge Java Basics - Anfänger-Themen 12
D Algorithmus für Punkte auf einem Kreis Java Basics - Anfänger-Themen 0
C Ideen für einen Algorithmus Java Basics - Anfänger-Themen 1
R Rekursionsformel für Laufzeit von Algorithmus Java Basics - Anfänger-Themen 3
S Algorithmus für Spielbaum Java Basics - Anfänger-Themen 5
A double and add algorithmus für elliptische kurven/ integer binär darstellen Java Basics - Anfänger-Themen 14
Binary.Coder Welcher Datentyp für den Simplex Algorithmus Java Basics - Anfänger-Themen 3
N Algorithmus für Berechnung einer Quersumme Java Basics - Anfänger-Themen 9
W Algorithmus für Primzahlberechnung Java Basics - Anfänger-Themen 4
A MiniMax- Algorithmus für 4-Gewinnt Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
H Minimax Algorithmus in Tic Tac Toe Java Basics - Anfänger-Themen 3
ohneInformatik; Trockentest Algorithmus, mathematischen Zusammenhang angeben Java Basics - Anfänger-Themen 3
M Minimax-Algorithmus Java Basics - Anfänger-Themen 17
mervanpolat Binary Search Algorithmus ausführen Java Basics - Anfänger-Themen 1
J Rekursiver Algorithmus Java Basics - Anfänger-Themen 9
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
rosima26 Merge-Algorithmus Java Basics - Anfänger-Themen 53
C Ein Algorithmus soll schneller werden Java Basics - Anfänger-Themen 24
D Dijkstra Algorithmus Hilfe!! Java Basics - Anfänger-Themen 9
U Den Kuchen aufteilen - aber wie? (Rebalancing-Algorithmus) Java Basics - Anfänger-Themen 14
s_1895 Pseudocode Naiver Algorithmus Java Basics - Anfänger-Themen 17
H String verschlüsseln - eigener Algorithmus Java Basics - Anfänger-Themen 104
Düsseldorf2002 Testen meines Algorithmus Java Basics - Anfänger-Themen 1
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
KogoroMori21 Frage zum Euklidischen Algorithmus Java Basics - Anfänger-Themen 11
S Algorithmus java searchAll IKey Java Basics - Anfänger-Themen 4
S Algorithmus Datensätze einfügen wenn... Java Basics - Anfänger-Themen 26
KogoroMori21 MergeSort Algorithmus Java Basics - Anfänger-Themen 2
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
fendix Compiler-Fehler Algorithmus zur Bestimmung von Primzahlen Java Basics - Anfänger-Themen 7
S Algorithmus (reelle Zahl <65536 von dezimal zu dual) max. 10 Nachkommastellen Java Basics - Anfänger-Themen 4
G Algorithmus Graphen Java Basics - Anfänger-Themen 10
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
N Selection Algorithmus: Methode wird nicht erkannt (BlueJ) Java Basics - Anfänger-Themen 3
U Meinung zum Dijkstra Algorithmus Java Basics - Anfänger-Themen 6
U Dijkstra Algorithmus Laufzeit Java Basics - Anfänger-Themen 3
L Math.exp also eigenen Algorithmus Java Basics - Anfänger-Themen 2
Kirby.exe Algorithmus entwickeln Java Basics - Anfänger-Themen 37
M Algorithmus Max-Heap? Java Basics - Anfänger-Themen 3
I Labyrinth auf der Basis eines rekursiven Algorithmus Java Basics - Anfänger-Themen 27
CptK Best Practice Algorithmus nach jedem Schritt zum Visualisieren pausieren Java Basics - Anfänger-Themen 3
A Algorithmus effizienter machen Java Basics - Anfänger-Themen 1
V Algorithmus zur fortlaufenden Berechnung des duechscjnt Java Basics - Anfänger-Themen 1
M Dijkstra Algorithmus in Graphen auf mehrere verschiedene Knoten anwenden lassen Java Basics - Anfänger-Themen 11
O Labyrinth Algorithmus Java Basics - Anfänger-Themen 3
G Quicksort Algorithmus Java Basics - Anfänger-Themen 12
S Binäre-Suche Algorithmus Java Basics - Anfänger-Themen 1
D Algorithmus in Pseudocode mit log2(n) Operationen erstellen Java Basics - Anfänger-Themen 3
C Laufzeit eines Sortier-Algorithmus ermitteln Java Basics - Anfänger-Themen 4
H aufgabe java luhn algorithmus Java Basics - Anfänger-Themen 10
S Dijkstra Algorithmus funktioniert nicht Java Basics - Anfänger-Themen 4
N Denksportaufgabe durch Algorithmus lösen Java Basics - Anfänger-Themen 2
S Problem mit einem rekursivem FloodFill Algorithmus Java Basics - Anfänger-Themen 62
B Algorithmus Square und Multiply Java Basics - Anfänger-Themen 3
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
D Frage Boyer-Moore Algorithmus Java Basics - Anfänger-Themen 7
M Komplexität Algorithmus Java Basics - Anfänger-Themen 8
H Zeichen im algorithmus Java Basics - Anfänger-Themen 4
B Code Verständnisfragen - FLoyd Warshall Algorithmus Java Basics - Anfänger-Themen 1
B Algorithmus zum entmischen einer Zahlenfolge Java Basics - Anfänger-Themen 15
X Minimax-Algorithmus über alle Kanten möglich? - Kanten darstellen Java Basics - Anfänger-Themen 1
T Algorithmus zur Überprüfung eines binären Suchbaums Java Basics - Anfänger-Themen 2
M Simpler Algorithmus läuft extrem langsam. Java Basics - Anfänger-Themen 3
K Erste Schritte Brute Force Algorithmus Java Basics - Anfänger-Themen 2
L Frage zu BubbleSort Algorithmus Java Basics - Anfänger-Themen 2
B gibt es ein Stundenplan-Algorithmus? Java Basics - Anfänger-Themen 11
O Algorithmus-Problem Java Basics - Anfänger-Themen 5
P Euklidischer Algorithmus Java Basics - Anfänger-Themen 9
L Greates Commong Dividend - euklidischer Algorithmus, modulos not positive Java Basics - Anfänger-Themen 5
J Euklidischer Algorithmus Java Basics - Anfänger-Themen 1
S Quicksort Algorithmus Java Basics - Anfänger-Themen 2
S GraphNode --- Dijkstra Algorithmus : NullPointerException Java Basics - Anfänger-Themen 1
B Rekursive Algorithmus schreiben Java Basics - Anfänger-Themen 8
V Algorithmus in einer Methode ausführen Java Basics - Anfänger-Themen 3
M Implementierung des Knuth-Morris-Pratt-Algorithmus Java Basics - Anfänger-Themen 0
M Dijkstras Algorithmus Java Basics - Anfänger-Themen 5
S Zusammenhang Datenstruktur/Algorithmus Java Basics - Anfänger-Themen 1
M Simulation - Algorithmus Java Basics - Anfänger-Themen 3
F Erste Schritte Hilfe beim Algorithmus finden Java Basics - Anfänger-Themen 8
D Algorithmus zu gegebener Laufzeit implementieren Java Basics - Anfänger-Themen 1
B Doppelte Werte aus Array entfernen ohne Import - Algorithmus Java Basics - Anfänger-Themen 5
F Best Practice Algorithmus optimieren - Binaeruhr Java Basics - Anfänger-Themen 2
S Euklid Algorithmus zur Berechnung des GGTs Java Basics - Anfänger-Themen 2
L Welcher Algorithmus ist das ? Java Basics - Anfänger-Themen 9
J Rekursiver Horner-Schema-Algorithmus - Verstehe ich ihn richtig? Java Basics - Anfänger-Themen 2
O Java Zufalls-Verteil-Algorithmus Java Basics - Anfänger-Themen 3
P ganz simpler algorithmus Java Basics - Anfänger-Themen 3
C Sortieren ohne Algorithmus Java Basics - Anfänger-Themen 8
J Algorithmus: Grad von floating zu Grad/Minute/Sekunde Java Basics - Anfänger-Themen 3
A Text Verschriebung/Algorithmus(?) Java Basics - Anfänger-Themen 8
U Peterson Algorithmus Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben