Home Backend Development PHP Tutorial PHP randomly returns busy effect

PHP randomly returns busy effect

Dec 27, 2017 pm 03:40 PM
php Effect

This article mainly introduces the effect of pretending to be busy with limited-time sales of goods based on PHP. I hope to be helpful.

Recently I am working on a project, which is about the function of displaying rush to buy products. For example, if our website has a lot of traffic, if thousands of users click on your product at the same time within a few seconds, it will indeed appear that "there are too many people rushing to buy, and the system is busy."

But, it is a big problem However, some websites are not so awesome. In order to make users feel that the products are very popular, we need to make a program to "pretend to be busy" (except Taobao, don't think that other websites are really busy). It's very busy, but they deliberately make you feel that you can't buy it without grabbing it, please understand)

This article will set a rule, and you can expand it according to my ideas

#. ## 1. Everyone can click on the product purchase link


2. We want to give users a 70% chance of "queuing, product is busy"

This article Use php code to implement it. The same as in other languages.

First, let’s think about it using the knowledge we learned in elementary school:

1. If there are 10 balls, 3 of them are red. A basketball. Put it in a bag. Mix it randomly and let you put your hand in it. What is the probability of touching the basketball? Obviously, I gave this request to someone before. Look, my friend. The answer he gave is as follows:

     $arr=array(“red”,”red”,”red”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”);
     echo $arr[rand(0,9)];
Copy after login

Then he told me that he did it in two sentences. But this friend ignored it. A very important point

2. What if the second person comes to touch? There is a point to note here. If the second person comes to touch, then the 10 balls must be filled up (still 3 red balls). Balls, 7 basketballs)

And the most important thing is to continue to mix "randomly and casually". In this way, the chance of the second person touching the basketball will still be 70%.

The above program obviously ignores: continue to mix "randomly and casually". If everyone touches the ball according to the first three red and the last seven blue, then the rand function of PHP cannot guarantee that the basketball is 70. %.

Speaking of this, many masters will come up with various advanced algorithms, such as Bayesian, matrix and other words. If such an e-commerce function requires such complex operations, I believe it. Your boss will not agree with you spending so much time to complete this function.

Next, I will release a simple, yet accurate algorithm. Our goal is: simplicity using PHP. Function, try to make the probability of touching the basketball as close to 70% as possible

Step 1:

$arr=array("red","red","red"," blue","blue","blue","blue","blue","blue","blue"); This thing must be there, these are the three red balls and 7 basketballs that are initialized

Step 2: Mix randomly and randomly.

The above array has 10 elements. We can exchange two random balls. You can decide how many times to exchange them.
First write a swap function ( If you don’t understand this function, you need to supplement the basic knowledge)


function swap($i,$j,$arr)
  {
    $tmp=$arr[$i];
    $arr[$i]=$arr[$j];
    $arr[$j]=$tmp;
    return $arr;
  }
Copy after login


To implement this function, I enter two Any serial number can be used to exchange the sequence numbers in this array.


Step 3: Optimize the exchange algorithm.

Because of the above exchange function and the input random parameters, the red ball is exchanged with the red ball, or the basketball is exchanged with the basketball. Then, however, "real" mixing is not achieved

So we have to write a supplementary function to ensure that every exchange must be a random exchange of red balls and basketballs

 function getRange($arr,$v)
  {
    $ret=array();
    for($i=0;$i<count($arr);$i++)
    {
      if($arr[$i]==$v)
      {
         $ret[]=$i;
      }
    }
     return $ret[rand(0,count($ret)-1)];
  }
Copy after login


The function of this function is to find the red ball or basketball among the 10 balls, then take out their current serial numbers, and then use the rand function to randomly pick a basketball or red ball The ball's serial number.

Please take a look here:

    $i=getRange($arr,”red”);  //这样可以取出随机一个红球的序号
   $j=getRange($arr,”blue”); //这样可以取出随机一个篮球的序号
Copy after login

Step 4: More important.


Start mixing randomly and randomly

 for($num=0;$num<10;$num++)
     {
       
       $i=getRange($arr,”red”);  
             $j=getRange($arr,”blue”); 
       
       $arr=swap($i,$j,$arr);
      
      // echo implode(“,”, $arr).”|”.$i.”|”.$j.”<br/>”; //这个语句可以看一下输出,混合过后的排列,是否每次都不一样
     }
Copy after login

## The important thing to note here is that $num< 10. Mix 10 times on my behalf. It's equivalent to using your big hands to stir the bag 10 times. Theoretically, the more you stir, the stronger the randomness. Here 10 times is actually enough.

The $arr that comes out after the fourth step is completed is the mixture of red ball and basketball.


Step 5: Call the rand function again

 echo $arr[rand(0,9)];
Copy after login

If the content is blue, exit directly ("I'm very busy, don't bother")

If it is red, then let the program continue to execute the purchase process.

related suggestion:


php implements event candidate lottery function code

php implements simple permission management

php Lottery Mini Program

The above is the detailed content of PHP randomly returns busy effect. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1268
29
C# Tutorial
1248
24
Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP in Action: Real-World Examples and Applications PHP in Action: Real-World Examples and Applications Apr 14, 2025 am 12:19 AM

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

The Enduring Relevance of PHP: Is It Still Alive? The Enduring Relevance of PHP: Is It Still Alive? Apr 14, 2025 am 12:12 AM

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

See all articles