phpbar.de logo

Mailinglisten-Archive

[php] Kleines Integer Problem

[php] Kleines Integer Problem

schroeder php_(at)_phpcenter.de
Mon, 15 Oct 2001 23:06:28 +0100


Hallo kiri!

Was du ganz genau willst, kann ich mir immer noch nicht vorstellen,
hier aber ein Erkl=E4rungs-/L=F6sungsversuch:

(Nimm es mir nicht b=F6se, wenn ich wieder am Thema vorbei schiesse.
Aber es war ja meine Zeit, die ich mit Gedanken vergeudet habe...)
;-)

ALSO:
Du mu=DFt einfach mehr Bitweise rechnen, sonst geht es nicht.
Angenommen, du hast die Zahl 52, die deine Gruppenzugeh=F6rigkeit
repr=E4sentiert, so kann sie nur 3 Gruppen repr=E4sentieren, da 52 bin=E4r
0110100 ist. Somit w=E4ren deine passenden GruppenIDs

    4 - 0000100
+  16 - 0010000
+  32 - 0100000
---------------
=3D  52 - 0110100

Errechnen kannst du sie dann also nur mit Dezimalzahlen, die den
Logarithmus zur Basis 2 haben.
Du verkn=FCpfst die Gruppenzugeh=F6rigkeit mit dem logischen ODER du
addierst sie einfach.

Mit dem UND findest du dann heraus, ob eine GruppenID in der Zahl
vorhanden ist.

Der gr=F6=DFtm=F6gliche Wert f=FCr deine Gruppenzugeh=F6rigkeit ist somit
2 HOCH(Anzahl der Gruppen).

Die kann dann u.U. sehr hoch sein, halt potenziell zur Anzahl der
Gruppen.

Wenn es das ist, was du willst, hier meine Meinung:
Bei einer =FCbersichtlichen Anzahl von Gruppen sicherlich machbar und
u.U. auch schneller, nur bei einer gro=DFen Anzahl von Gruppen, die
m=F6glicherweise noch variiert ist die n:m Tabelle wesentlich
effektiver, weil du um einiges schneller Verkn=FCpfungen wieder l=F6sen
kannst und neue erstellen. Zudem hast du es =FCbersichtlicher.

Interessant aber, im Falle dessen, du willst herausfinden, ob ein
"Ding" in mehreren bestimmten Gruppen gleichzeitig ist, dann kannst
du die IDs ja einfach addieren und mit UND testen, ob das richtige
rauskommt.


In der Hoffnung auf das erl=F6sende "Das wars"
und mit der bangen Bef=FCrchtung "Das wars immer noch nicht"

gruss
schroeder



php::bar PHP Wiki   -   Listenarchive