この記事では主にPHPベースの商品の期間限定セールで忙しいふりをする効果について紹介します。お役に立てれば幸いです。
最近、セール商品を表示する機能に関するプロジェクトに取り組んでいます。たとえば、当社の Web サイトのトラフィックが多い場合、数秒以内に何千人ものユーザーが同時に商品をクリックすると、確かに「購入を急ぐ人が多すぎて、システムがビジー状態になっている」ように見えます。 "
しかし、ほとんどの Web サイトはそうではありません。それほど素晴らしいことではありません。ユーザーに商品の需要があると感じさせるには、常に「システムがビジーです」と表示して「忙しいふりをする」プログラムを作成する必要があります (タオバオを除いて、他のウェブサイトは本当に忙しいとは思わないでください、しかし、それらは意図的にそれをつかまなければ購入できないように感じさせます、ご理解ください)
この記事はルールを設定し、それを拡張することができます。私の考えによると
1. 製品購入リンクは誰でも利用できます
2. ユーザーに「列に並んでいる、商品が忙しい」という可能性を 70% 与えたいと考えています
この記事は php コードで実装されています。他の言語と同じように
まず、小学校で習った知識を使って考えてみましょう:
1. ボールが 10 個あり、赤いボールが 3 個、バスケットボールが 7 個あり、それらをランダムに混ぜて、その中に手を入れます。 、バスケットボールに触れる確率は何ですか? 以前、この条件を友人に見せたところ、次のような答えが返されました。 2 つの文
このアプローチは実際には非常に賢明です . しかし、この小さな友人は非常に重要な点を無視しました
2. 2 番目の人が接触してきた場合、ここで注意すべき点があります。その後、10 個のボールが埋まらなければなりません (まだ赤いボールが 3 個とバスケットボールが 7 個あります)
そして最も重要なことは、このようにして「ランダムかつカジュアルに」混ぜ続けることです。
上記のプログラムは明らかに無視しています: 最初の 3 つの赤と最後の 7 つの青に従って全員がボールに触れた場合、php の rand 関数は、そういえば、多くのマスターは、ベイジアン、行列などのさまざまな高度なアルゴリズムを考え出すでしょう。そのような電子商取引機能がそのような複雑な計算を必要とする場合、あなたの上司はあなたの支出に同意しないでしょう。この関数を完成させるにはとても時間がかかります
次に、PHP の単純な関数を使用して、バスケットボールに触れる確率をできるだけ 70% に近づけるアルゴリズムをリリースします。
ステップ 1:$arr=array("赤","赤","赤","青","青","青","青","青","青",”青”); これは存在する必要があります。これらは初期化された 3 つの赤いボールと 7 つのバスケットボールです
第 2 ステップ: ランダムとランダムの混合
$arr=array(“red”,”red”,”red”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”,”blue”); echo $arr[rand(0,9)];
この関数は、2つの乱数を入力することで実装されます。そして配列内のシーケンス番号を交換します。
ステップ 3: 交換アルゴリズムを最適化します。
上記の交換関数と入力されたランダムパラメータにより、赤いボールと赤いボール、またはバスケットボールとバスケットボールが交換されます。ただし、「本当の」混合は達成されません
function swap($i,$j,$arr)
{
$tmp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$tmp;
return $arr;
}
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)]; }
ステップ 4: さらに重要です。
ランダムにランダムに混ぜ始めます
$i=getRange($arr,”red”); //这样可以取出随机一个红球的序号 $j=getRange($arr,”blue”); //这样可以取出随机一个篮球的序号
ここで注意すべき点は、 $num<10 ということです。私の代わりに10回混ぜます。 大きな手で袋を10回かき混ぜるのに相当します。 理論的には、かき混ぜればかき混ぜるほど、ランダム性が強くなります。ここでは実際には10回で十分です。 4番目のステップが完了すると出てくる$arrは、赤いボールとバスケットボールを混ぜたものです。
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/>”; //这个语句可以看一下输出,混合过后的排列,是否每次都不一样 }
内容が赤の場合は、プログラムに実行を継続させます。購入手続き。
関連するおすすめ:
以上がPHP はランダムにビジー効果を返しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。