首頁  >  文章  >  後端開發  >  PHP隨機回傳繁忙效果

PHP隨機回傳繁忙效果

*文
*文原創
2017-12-27 15:40:221276瀏覽

本文主要介紹了基於PHP實現假裝商品限時搶購繁忙的效果。希望對大家有幫助。

最近要做一個項目,有關商品顯示搶購的功能。例如我們的網站很帶流量,那麼成千上萬的用戶在幾秒內同時點你的商品,確實會出現「搶購人數過多,會提示,系統繁忙。

    但是呢,大部分網站然而並沒有這麼牛叉。的很繁忙哦,只不過人家是故意讓你覺得不搶就買不到,求懂)

本文來設定一個規則,大家可以根據我的思路擴展即可。 ##    1、商品購買鏈接,每個人都可以點。用php程式碼實現。個籃球。小夥伴看。了很重要的一點

 2、如果第二個人來摸呢?球,7個籃球)

  然後最重要的,還要繼續「胡亂的、隨便的」混合一下。

#    上面的程序明顯忽略了:繼續「胡亂的、隨便的」混合一下。 %。你的老闆不會同意你花這麼多時間來完成這個功能吧。函數,盡可能的讓摸到籃球的幾率接近於70%。 blue”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”); 這個東西要有,這就是初始化的三個紅球,7個籃球

# 第二步:隨意的、亂的混合。

    上面一個陣列有10個元素,我們可以取一個隨機兩個球交換,交換多少次可以自己設定

    先寫個交換函數(如果這個函數看不懂,就要惡補基礎知識啦)

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

    這個函數實現,我輸入兩個隨便什麼序號,實現這個陣列中符合該序號的求交換一下。

 第三步:最佳化交換演算法。

  因為上面的交換函數,輸入的隨機參數導致,紅球和紅球交換,或籃球和籃球交換。那麼然而並沒有實現「真正的」混合

  所以我們要寫個補充函數,確保每次交換,都必須是紅球和籃球進行隨意交換


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


   這個函數的功能是:在10個球中找到紅球或籃球,然後分別取出他們目前所在的序號,然後利用rand函數隨機取一個籃球或紅球的序號。


   諾看這裡:

 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)];
  }

  第四步:比較重要。


開始隨意的、亂的混合

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

       這裡的注意點是,$num< 10  。代表我混合10次。 等於用你的大手到袋子裡胡亂攪10次。 理論上攪的越多,隨機性越強。這裡其實10次足以。

    第四步驟執行完成後出來的$arr 是攪拌好的 紅球和籃球的混合體。


 第五步:再呼叫rand函數


 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/>”; //这个语句可以看一下输出,混合过后的排列,是否每次都不一样
     }

   如果出來的是內容是blue ,則直接exit(「老子很忙,別煩」)

   如果是red,那就讓程式繼續執行購買程序。


相關推薦:

php 實作活動人選抽獎功能代碼

#php 實作簡單的權限管理

php 抽獎小程式

#

以上是PHP隨機回傳繁忙效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn