Ich möchte eine Funktion implementieren, die das kartesische Produkt der Menge zurückgibt. Zum BeispielKartesisches Produkt implementieren, so dass Iterationen übersprungen werden können.
input: {a, b}, 2
output:
aa
ab
bb
ba
input: {a, b}, 3
aaa
aab
aba
baa
bab
bba
bbb
jedoch der einzige Weg, ich umsetzen kann es erstens tut cartesion Produkt für 2 Sätze („ab“, „ab), dann aus dem Ausgang des Satzes, den gleichen Satz hinzuzufügen. Hier ist Pseudo -Code:
function product(A, B):
result = []
for i in A:
for j in B:
result.append([i,j])
return result
function product1(chars, count):
result = product(chars, chars)
for i in range(2, count):
result = product(result, chars)
return result
Was ich will, ist direkt mit dem letzten Satz zu starten Berechnung, ohne bevor es alle Sätze Computing ist dies möglich, auch eine Lösung, die mir ähnliches Ergebnis geben wird, aber es ist nicht. kartesisches Produkt ist akzeptabel Ich habe kein Problem beim Lesen der meisten allgemeinen Programmiersprachen, also wenn Sie Code eingeben müssen, können Sie es in jeder Sprache tun, die Sie fühlte sich wohl mit.
Was ist das Problem mit dem, was Sie bereits haben? – Amit
Ich möchte Iterationen überspringen, da der obige Algorithmus mit der vorherigen Menge arbeitet, also wenn ich {a, b} 8 erzeugen will, muss zuerst der pc {a, b} x {a, b} dann ({ a, b} x {a, b}) x {a, b} ... bis 8 –
Sie versuchen tatsächlich, ein Problem zu lösen (echter Flaschenhals?) oder einfach "für Spaß zu optimieren"? – Amit