Parameter vs. Dict vs. List

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

@Seeker: Mit Elementen sind die Elemente der Liste gemeint. Wenn Du ein Element aus einer Liste entfernst, werden alle Elemente die danach kommen umkopiert um die Lücke zu schliessen.

Meine Funtkion sollte für `count` auf viele Versuche im Mittel das gleiche Ergebnis liefern, wie Dein Quelltext, nur halt wesentlich schneller. Dein Ansatz sucht sich aus der Liste der Möglichkeiten immer eine Zahl aus und vergleicht mit der gesuchten Zahl. Die Möglichkeiten werden also in einer zufälligen Reihenfolge durchprobiert. Genau das gleiche mache ich auch, ich bringe die Möglichkeiten erst in eine zufällige Reihenfolge, und dann schaue ich an wievielter Stelle der Treffer steht, also wie oft in der zufälligen Reihenfolge davor eine falsche Zahl stand. Ich mache damit zwar "mehr" Arbeit als Du, weil ich alle Möglichkeiten mische und die nach dem Treffer eigentlich gar nicht benötigt werden, aber das passiert eben in linearer Laufzeit und nicht quadratisch. Damit ist's dann ab einem bestimmten Punkt deutlich schneller.
Seeker
User
Beiträge: 70
Registriert: Mittwoch 16. September 2009, 19:52

hm... 'needle' ist in diesem Fall also meine gesuchte Zahl?
Dann wird die Lise einmal durchmischt und geschaut, auf welcher Stelle die gesuchte Zahl liegt? (+1 da der Index bei 0 anfängt).
Das ist gemogelt, haha :P. Aber klar, in langer Sicht sollte es das gleiche Resultat liefern, und für jedes 'Raten' (ein Raten gibts ja eigentlich nicht mehr) muss er gar keinen Loop mehr machen, also nur 1 'Durchlauf', während ich z.B. für eine Zahl zw. 1 und 100'000 ca. 50k Durchläufe brauchte... und dann noch jeweils die Zahl aus der Liste löschen musste. So wars gemeint, oder?

Ich habs mal eingesetzt. Bei der Suche nach einer Zahl zwischen 1 und 10^8 war die Zahl an 32'646'480. Stelle. Dafür hat er 9 min 45 s gebraucht. :)
Antworten