Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
08.01.2008, 11:47 (Dieser Beitrag wurde zuletzt bearbeitet: 08.01.2008 12:20 von eg.)
ich muss eine in einem schon bestehendem Array nicht vorhandene U32-Nummer generieren. Wie wäre es am einfachsten?
Danke
P.S. in meinen Gedanken:
einfach eine While-Schleife solange ausführen bis der Iterator der While-Schleife im Array nicht vorkommt und dann beenden und ausgeben. Aber ob es bei grösseren Arrays effizient ist???
' schrieb:Warum nimmst du nicht einfach den höchsten Wert aus dem Array und zählst eins drauf?
VDB
Hm, interessant, gut und schnell. Die Zahl wird zwar schneller erschöpft (ich meine die U-32), aber ich werde eigentlich nie so viele clients haben. Ich weiss jetzt nicht wie lange mein Programm laufen wird, die Clients werden sich dynamisch an- und abmelden und immer wieder eine neue höhere nummer bekommen. Hm, überlegenswert. Danke.
' schrieb:Hm, interessant, gut und schnell. Die Zahl wird zwar schneller erschöpft (ich meine die U-32), aber ich werde eigentlich nie so viele clients haben. Ich weiss jetzt nicht wie lange mein Programm laufen wird, die Clients werden sich dynamisch an- und abmelden und immer wieder eine neue höhere nummer bekommen. Hm, überlegenswert. Danke.
Noch Vorschläge?
In einer While Schleife:
Random Zahl (double, 0..1) erstellen, Multiplizieren mit der max. Anzahl an Clients, nach U32 konvertieren.
Solange bis du eine Zahl hast die noch nicht im Array vorhanden ist (search 1D array).
Windows benutzt sehr gerne sehr viele sogenannte GUIDs um Prozesse, Registry-Einträge usw. auseinander zu halten. Start -> Ausführen -> guidgen.exe wenn du selber eine erstellen möchtest.
Aber das ist hier overkill, glaube ich. Eine Randomzahl müsste hier ausreichen.
Wie wärs wenn du die aktuelle Zeit im Zeitstempel ausliest und sie in ne U32 wandelst.
Solange nicht an der Uhrzeitrumgepfuscht wird kommst du damit bis ins Jahr 2040, vielleicht reicht dir das?
Anhand der ID siehst du dannschon wann das ding das erste mal angeschlossen war.
Grüße
Achimedes
Wer Rechtschreibfehler findet .... darf sie behalten.
08.01.2008, 15:27 (Dieser Beitrag wurde zuletzt bearbeitet: 08.01.2008 16:10 von eg.)
' schrieb:Wie wärs wenn du die aktuelle Zeit im Zeitstempel ausliest und sie in ne U32 wandelst.
Solange nicht an der Uhrzeitrumgepfuscht wird kommst du damit bis ins Jahr 2040, vielleicht reicht dir das?
Anhand der ID siehst du dannschon wann das ding das erste mal angeschlossen war.
Grüße
Achimedes
, passt da auch Tick Count, das kommt gleich als U32 raus? Aber die Auflösung ist nur 1 ms, wenn ich das richtig verstehe, was passiert wenn sich mehrere Clients quasi gleichzeitig anmelden wollen? Dann muss ich ja max. 1 ms warten, ich glaube das macht zwar nichts aus, aber ich bleibe doch bei der Zufallszahl. Danke für den Vorschlag.