Mailinglisten-Archive |
>>ist es möglich den Wert von "summe" zu speichern, um damit vernünftig >>weiter zurechnen ? >Du meinst sicherlich die Möglichkeit unter SQL mit den Werten weiter >zu arbeiten!? >Dann schau mal hier nach! Nein das meinte ich nicht. Mir geht es um dasselbe wie unter Unix die Dateirechte, also die Summe von Potenzen: 2^0 = 1 - execute 2^1 = 2 - write 2^2 = 4 - read ergibt in der summe 7 also maximale rechte oder 6 für nur rw. über if( 6 & 4 = 4 ) { "you have read right" } Zitat: "Wenn ich das richitg verstanden habe willst du ein Bitfield machen, wobei jedes gesetzte Bit die Zugehörigkeit zu der entsprechenden Gruppe repräsentiert. " Da ich aber keine Rechte habe ;-) sondern nur Gruppennummern möchte ich diese Gruppennummerna auch genauso Verknüpfen: 2^351 + 2^3 Der Sinn ist also eine Reihe von Int-Zahlen ( >= 0) zu einer Summe zusammenzufassen und durch einen Algorithmus festzustellen ob Zahl X in der Summe enthalten ist ! checksumme(int zahl, int summe); wenn Zahl in der Summe enthalten ist, wird true oder die Zahl zurückgeliefert! Durch die logarithmischen Summe würde es ja gehen, aber leider nur zu gross .. +--------+----------------------------------------------------------------+- --------------+ | nav_id | exp | nav_name | +--------+----------------------------------------------------------------+- --------------+ | 1 | 2.000000 | ROOT | | 2 | 4.000000 | Microtek | | 3 | 8.000000 | Avision | | 4 | 16.000000 | Epson | | 5 | 32.000000 | HP | | 6 | 64.000000 | Umax | | 7 | 128.000000 | Ricoh | | 19 | 524288.000000 | Heidelberg | | 20 | 1048576.000000 | Agfa | | 55 | 36028797018963968.000000 | Nikon | | 56 | 72057594037927936.000000 | Minolta | | 66 | 73786976294838206464.000000 | Lasersoft | | 75 | 37778931862957161709568.000000 | Canon | | 89 | 618970019642690137449562112.000000 | Scanservice | | 106 | 81129638414606681695789005144064.000000 | Polaroid | | 111 | 2596148429267413814265248164610048.000000 | Software | | 117 | 166153499473114484112975882535043072.000000 | Scansoft | | 119 | 664613997892457936451903530140172288.000000 | ELO | +--------+----------------------------------------------------------------+- --------------+ 22 rows in set (0.01 sec) die letzte Zahl ist 2 hoch 119 - (2^119) Ein Möglichkeit wäre die Wurzel der n-ten Dimension zu ziehen und so die Zahlen kleiner zubekommen, aber dafür muss man den Dezimalbereich auf min. > 14 stellen ausweiten. kiri
php::bar PHP Wiki - Listenarchive