LabVIEWForum.de
Nummer generieren - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Nummer generieren (/Thread-Nummer-generieren)

Seiten: 1 2


Nummer generieren - eg - 08.01.2008 11:47

Hallo Leute,

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???

Oder wäre eine Zuffalszahl bessere Alternative?


Nummer generieren - eg - 08.01.2008 13:23

Ne, so wie im Bild 1 geht nicht, ich habe hier eine neue Variante. (noch keine von beiden ausprobiert!)


Nummer generieren - VDB - 08.01.2008 14:10

Warum nimmst du nicht einfach den höchsten Wert aus dem Array und zählst eins drauf?

VDB


Nummer generieren - eg - 08.01.2008 14:14

' 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.

Noch Vorschläge?


Nummer generieren - VDB - 08.01.2008 14:21

' 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).

VDB


Nummer generieren - eg - 08.01.2008 14:27

' schrieb: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).

VDB


Also doch Zuffalszahl (s.o.), wird es bei Windows (Stichwort: Taskmanager) auch so gemacht?


Nummer generieren - VDB - 08.01.2008 14:30

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.

VDB


Nummer generieren - eg - 08.01.2008 14:47

Ok, Danke, dann also so:


Nummer generieren - Achimedes - 08.01.2008 14:59

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


Nummer generieren - eg - 08.01.2008 15:27

' 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

Top1, 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.