麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > PHP > 正文

基于PHP實現(xiàn)假裝商品限時搶購繁忙的效果

2024-05-04 23:39:38
字體:
供稿:網(wǎng)友

這篇文章主要介紹了基于PHP實現(xiàn)假裝商品限時搶購繁忙的效果,需要的朋友可以參考下

最近要做一個項目,有關商品顯示搶購的功能。比如我們的網(wǎng)站很帶流量,那么成千上萬的用戶在幾秒內(nèi)同時點你的商品,確實會出現(xiàn)“搶購人數(shù)過多,會提示,系統(tǒng)繁忙。

但是呢,大部分網(wǎng)站然而并沒有這么牛叉。為了讓用戶感受到商品很搶手,動不動就提示”系統(tǒng)繁忙“的效果,我們需要做一個程序來”假裝很繁忙“。 (除了淘寶,大家不要以為其他網(wǎng)站真的很繁忙哦,只不過人家是故意讓你覺得不搶就買不到,求懂)

本文來設定一個規(guī)則,大家可以根據(jù)我的思路擴展即可。

1、商品購買鏈接,每個人都可以點。

2、我們要讓用戶有70%的可能性出現(xiàn)“排隊中,商品繁忙”

本文用 php代碼實現(xiàn)。其他語言一樣,改改。

首先我們用小學學到的知識想一下:

1、 如果有10個球,其中3個紅球,7個籃球。放在袋子里。隨便胡亂的混合一下,讓你用手伸進去摸,那么摸到籃球的幾率是多少?顯然,是70%

之前我把這個需求給了一個小伙伴看。他給出的答案如下:

$arr=array(“red”,”red”,”red”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”);

然后 echo $arr[rand(0,9)];

然后告訴我,他兩句話就搞定了。

這個做法其實已經(jīng)蠻聰明了。但是這位小伙伴忽略了很重要的一點

2、如果第二個人來摸呢? 這里有個注意點,如果第二個人來摸,那么必定要把這10個球補滿(依然是3個紅球,7個籃球)

然后最重要的,還要繼續(xù)“胡亂的、隨便的”混合一下。這樣,第二個人來摸到籃球的幾率才會依然是70%.

上面的程序明顯忽略了:繼續(xù)“胡亂的、隨便的”混合一下。 如果每個人都按這個 前三個紅后七個藍 來摸球。那么php的rand函數(shù)不能保證籃球是70%。

說到這,很多大神要拿出各種高級算法,譬如啥貝葉斯、矩陣之類的字眼出來。如果這么一個電商功能要用這么復雜的運算,我相信你的老板不會同意你花這么多時間來完成這個功能吧。

接下來,我放出一種簡單,但也不失精準性的算法。我們的目標是:使用php的簡單函數(shù),盡可能的讓摸到籃球的幾率接近于70%。

第一步:

$arr=array(“red”,”red”,”red”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”); 這個東西要有,這就是初始化的三個紅球,7個籃球

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

上面一個數(shù)組有10個元素,我們可以采取隨機兩個球交換,交換多少次可以自己定

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

 

 
  1. function swap($i,$j,$arr) 
  2. $tmp=$arr[$i]; 
  3. $arr[$i]=$arr[$j]; 
  4. $arr[$j]=$tmp; 
  5. return $arr; 

這個函數(shù)實現(xiàn),我輸入兩個隨便什么序號,實現(xiàn)對這個數(shù)組中符合該序號的求交換一下。

第三步:優(yōu)化交換算法。

因為上面的交換函數(shù),輸入的隨機參數(shù)導致,紅球和紅球交換,或者籃球和籃球交換。那么然而并沒有實現(xiàn)“真正的”混合

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

 

  1. function getRange($arr,$v) 
  2. $ret=array(); 
  3. for($i=0;$i<count($arr);$i++) 
  4. if($arr[$i]==$v) 
  5. $ret[]=$i; 
  6. return $ret[rand(0,count($ret)-1)]; 

這個函數(shù)的作用是:在10個球中找到 紅球或籃球,然后分別取出他們目前所在的序號,然后利用rand函數(shù)隨機取一個籃球或者紅球的序號。

諾看一下這里:

$i=getRange($arr,”red”); //這樣可以取出隨機一個紅球的序號

$j=getRange($arr,”blue”); //這樣可以取出隨機一個籃球的序號

第四步:比較重要。

開始隨意的、胡亂的混合

 

 
  1. for($num=0;$num<10;$num++) 
  2.  
  3. $i=getRange($arr,”red”);  
  4. $j=getRange($arr,”blue”);  
  5.  
  6. $arr=swap($i,$j,$arr); 
  7.  
  8. // echo implode(“,”, $arr).”|”.$i.”|”.$j.”<br/>”; //這個語句可以看一下輸出,混合過后的排列,是否每次都不一樣 

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

第四步執(zhí)行完成后出來的$arr 就是攪拌好的 紅球和籃球的混合體。

第五步:再次調(diào)用 rand函數(shù)

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

如果出來的是內(nèi)容是blue ,則直接exit(“老子很忙,別煩”)

如果是red,那么讓程序繼續(xù)執(zhí)行購買程序吧。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 激情小说激情电影 | 成熟女人特级毛片www免费 | 毛片在线免费视频 | 精品一区二区三区四区在线 | 美女网站黄在线观看 | 最新在线中文字幕 | 久久新网址 | 羞羞的视频免费 | 国产欧美精品综合一区 | 操碰在线视频 | 毛片免费在线 | www.99re1.com | japan护士性xxxⅹhd| 天天操天天骑 | 欧美日韩综合视频 | 日韩欧美精品中文字幕 | 国产1区2区在线 | 成人午夜在线免费 | 成人9禁啪啪无遮挡免费 | 91成人亚洲 | 有兽焉免费动画 | 日本成人午夜视频 | 素人视频在线观看免费 | 色蜜桃av| 成人一级黄色片 | 精品国产九九九 | 男女羞羞在线观看 | 欧美日韩手机在线观看 | 精品一区二区亚洲 | 草草视频免费观看 | 有色视频在线观看 | 污污短视频 | 国产欧美精品一区二区三区四区 | 日韩精品一二三 | 国产成人精品免费视频大全办公室 | 极品xxxx欧美一区二区 | 牛牛碰在线| 黄色免费不卡视频 | 日本看片一区二区三区高清 | 黄色片网站在线播放 | 粉嫩粉嫩一区二区三区在线播放 |