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
471
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
Räppäri kuoli vankilassa
Ei kuulemma ole tapahtunut rikosta. Sama vahinkohan kävi Epsteinille. https://www.hs.fi/suomi/art-2000011840869.html "1064632Välillä kyllä tuntuu, että jaat vihjeitä
Mutta miten niistä voi olla ollenkaan varma? Ja minä saan niistä kimmokkeen luulemaan yhtä sun toista. Eli mitä ajatella293433No kyllä te luuserit voitte tehdä mitä vaan keskenänne, sitä en ymmärrä miksi pelaat,nainen
Pisteesi silmissäni, edes ystävätasolla tippui jo tuhannella, kun sain selville pelailusi, olet toisen kanssa, vaikka ol452390- 491504
- 361403
- 381226
- 141132
- 1591026
- 271018
- 6944