Eli tietääkö joku helppoa tapaa luoda int tyyppinen id- numero string- merkkijonon perusteella.
Esim merkkijonoja:
"12.1.2009_myynti_autot_pyyhkijänsulat_10€"
"12.1.2009_myynti_autot_etupolttimo_4€"
"13.1.2009_osto_autot_moottoriöljy_1000€"
jne.
id:n pitäisi generoitua jokaiselle, kun tietoja voi olla esim. 100000kpl. Sattumalta sama id tulisi vasta kun liikuttaisiin tietokannassa miljoonissa riveissä. Mites sakandimerkit, vaikuttaisivatko ne mitenkään, jos liikuttaisiin vain windows- ympäristössä ja käytössä on vaikka vietnaminkielinen windows xp?
Id tulisi tietokantaan, johon lisätään tietoja.
Miten luoda id
3
459
Vastaukset
- ..........
Kuullostaa siltä, että yrität keksiä pyörää uudelleen. Mitä oikein yrität tehdä loppujen lopuksi?
Vaikuttaa siltä että saattaisit olla etsimässä tiivistettä (checksum, hash, digest, yms.). Näitä on esim. CRC, MD5, SHA1, SHA256, yms. CRC32 palauttaa 32-bittisen luvun, MD5 128-bittisen, SHA1 160-bittisen yms. Luku voidaan esittää desimaalisena, tosin usein käytetään heksadesimaalista esitystapaa, kuten "5a532bc12f1103525ea6442ab4211cca".
On huomattavaa, että 50% todennäköisyydellä törmäys 32-bittisiä lukuja (int) käytettäessä on n. 77000 "id:n" kohdalla. 1% todennäköisyys jo n. 9300:lla!
Jos luku on etumerkillinen, ja käytetään vain positiivisia arvoja, 50% todennäköisyys ainakin yhteen törmäykseen on 54000:lla id:llä. - singleton
int get_id(void)
{
static int id = 0;
return id;
} - nuunuunuu
k = kerroin = jotain = 31
h = hash = 0
for c in str:
h = h*k c
return h % maks
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 73853
Miltä se tuntuu
Miltä se tuntuu havahtua, että on ollut ihmistä kohtaan, joka on rakastanut ja varjellut, täysi m*lkku? Vai havahtuuko s104708- 35577
- 40575
- 29572
- 46570
- 33559
- 50540
Mitä se olisi
Jos sinä mies saisit sanoa kaivatullesi mitä vain juuri nyt. Ilman mitään seuraamuksia yms. Niin mitä sanoisit?34537- 35464