index in tupel/list finden
Vielleicht lohnt es sich, über ein Set zu gehen:
Bei dieser Herangehensweise weiß man aber natürlich nur, ob es Fundstellen gibt und man kennt die Positionen, man weiß aber nicht, welche Zahl wo gefunden wurde. Es bleibt weiterhin die Frage offen, was genau du vor hast. Oder ist das ein Geheimnis? Vielleicht gibt es einen wesentlich effizienteren Algorithmus für dein Problem.
Code: Alles auswählen
tup = (2,5,6,7,8,12,13)
for x in set((9,4,14)).intersection(tup):
print tup.index(x)
Ist damit also sowas gemeint?joh# hat geschrieben:Das Tupel ist in diesem Fall nur 3 Elemente lang, wobei für jedes Element nur 4 Zahlenwerte
möglich sind, hält sich also alles in Grenzen.
Code: Alles auswählen
values = [(1,2,3), (2,3,4), (3,4,1)]
wanted = set([4,1,2])
Code: Alles auswählen
values = [(34,12,45,1), (4,8,23,16), (50,33,34,2)]
@numerix, snafu
Ich hab doch in einem anderen Beitrag schon mal nach einem
Skat Problem angefragt...
Was ich also letztlich (verstehen) will, wie man für jede Möglichkeit des
Spielverlaufs ab Stich 6 (das sind die erwähnten 1728000) die
für die jeweiligen Spieler eingebrachten Augensummen berechnet,
nätürlich mit dem Ziel, die richtige Karte auszuwählen.
Und dazu muß natürlich irgendwann mal der Besitzer des jeweiligen
Stichs ermittelt werden.
[[na google/Schäuble&Co schlafen wohl noch ... ]]snafu hat geschrieben:Vielleicht lohnt es sich, über ein Set zu gehen:
. . .
Oder ist das ein Geheimnis? .
Ich hab doch in einem anderen Beitrag schon mal nach einem
Skat Problem angefragt...
Was ich also letztlich (verstehen) will, wie man für jede Möglichkeit des
Spielverlaufs ab Stich 6 (das sind die erwähnten 1728000) die
für die jeweiligen Spieler eingebrachten Augensummen berechnet,
nätürlich mit dem Ziel, die richtige Karte auszuwählen.
Und dazu muß natürlich irgendwann mal der Besitzer des jeweiligen
Stichs ermittelt werden.
bis jetzt existiert eine liste mit allen möglichen Kombnationen s.o., mit Referenzen auf die aktuelle Kartensituation.snafu hat geschrieben: Vielleicht gibt es einen wesentlich effizienteren Algorithmus für dein Problem
Wenn du dir einmal die Mühe machen würdest, exakt zu benennen, wie viele verschiedene und welche Werte in wie vielen verschiedenen Tupeln welcher Länge und mit welchen minimalen und maximalen Werten zu suchen sind, würde das die Chance, dass noch jemand eine Idee zur Performance-Steigerung hat, enorm erhöhen.
...also, wenn der Tupel in dem gesucht wird (V,M,H) ist, dannnumerix hat geschrieben:Wenn du dir einmal die Mühe machen würdest, exakt zu benennen, wie viele verschiedene und welche Werte in wie vielen verschiedenen Tupeln welcher Länge und mit welchen minimalen und maximalen Werten zu suchen sind, würde das die Chance, dass noch jemand eine Idee zur Performance-Steigerung hat, enorm erhöhen.
sind für V, für M und auch für H jeweils folgende Zahlen möglich:
Code: Alles auswählen
0x01000000
0x01010000
0x01020000
0x01030000
0x00010000
0x01050000
0x01060000
0x01070000
0x02000000
0x02010000
0x02020000
0x02030000
0x00020000
0x02050000
0x02060000
0x02070000
0x03000000
0x03010000
0x03020000
0x03030000
0x00030000
0x03050000
0x03060000
0x03070000
0x04000000
0x04010000
0x04020000
0x04030000
0x00040000
0x04050000
0x04060000
0x04070000
0x63630000
Byte codiert ist, danach kommt der eigentliche Codebyte der Karte,
benutzt wird das z.z. in folgendem Code:
Code: Alles auswählen
for crd in (0x00010000,0x00020000,0x00030000,0x00040000):
if crd in (V,M,H):
owner=(V,M,H).index(crd)
break
Um ehrlich zu sein, interessieren mich irgendwelche Skat Probleme nicht. ;P Ich lese hier sowieso nur einen Bruchteil der Threads. Wenn nicht schon bei der Überschrift, dann merke ich doch meist nach den ersten 3 Sätzen eines Threads, dass ich eigentlich gar keine Lust auf das Thema habe.joh# hat geschrieben:[[na google/Schäuble&Co schlafen wohl noch ... ]]
Ich hab doch in einem anderen Beitrag schon mal nach einem
Skat Problem angefragt...