Heim  >  Artikel  >  Backend-Entwicklung  >  Algorithmusproblem zum Generieren von 1 Million Coupons auf JD.com

Algorithmusproblem zum Generieren von 1 Million Coupons auf JD.com

WBOY
WBOYOriginal
2016-08-20 09:04:042128Durchsuche

Jingdong generiert 1 Million Coupons und das Präfix der Couponnummer ist QA (z. B. QAK001, QA0U767, QAJUT55, zufällige Couponnummer). Welcher Algorithmus kann verwendet werden, um 1 Million einzigartige Coupons zu generieren? Müssen diese 1 Million Couponnummern in der Datenbank oder im Cache gespeichert werden?

Antwortinhalt:

Jingdong generiert 1 Million Coupons und das Präfix der Couponnummer ist QA (z. B. QAK001, QA0U767, QAJUT55, zufällige Couponnummer). Welcher Algorithmus kann verwendet werden, um 1 Million einzigartige Coupons zu generieren? Müssen diese 1 Million Couponnummern in der Datenbank oder im Cache gespeichert werden?

Sie können sich auf den Algorithmus Bloom Filter beziehen

UUID wird empfohlen.

<code>function guid(){
    if (function_exists('com_create_guid')){
        return com_create_guid();
    }else{
        mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
        $charid = strtoupper(md5(uniqid(rand(), true)));
        $hyphen = chr(45);// "-"
        $uuid = chr(123)// "{"
                .substr($charid, 0, 8).$hyphen
                .substr($charid, 8, 4).$hyphen
                .substr($charid,12, 4).$hyphen
                .substr($charid,16, 4).$hyphen
                .substr($charid,20,12)
                .chr(125);// "}"
        return $uuid;
    }
}</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn