抽奖概率 PHP

May 26, 2016 am 08:21 AM

抽奖概率

<?php 

function get_rand($proArr) { 
    $result = &#39;&#39;; 

    //概率数组的总概率精度
    $proSum = array_sum($proArr); 

    //概率数组循环
    foreach ($proArr as $key => $proCur) { 
        $randNum = mt_rand(1, $proSum); 
        if ($randNum <= $proCur) { 
            $result = $key; 
            break; 
        } else { 
            $proSum -= $proCur; 
        } 
    } 
    unset ($proArr); 

    return $result; 
}

$prize_arr = array( 
    &#39;0&#39; => array(&#39;id&#39;=>1,&#39;prize&#39;=>&#39;平板电脑&#39;,&#39;v&#39;=>0), 
    &#39;1&#39; => array(&#39;id&#39;=>2,&#39;prize&#39;=>&#39;数码相机&#39;,&#39;v&#39;=>0), 
    &#39;2&#39; => array(&#39;id&#39;=>3,&#39;prize&#39;=>&#39;音箱设备&#39;,&#39;v&#39;=>0), 
    &#39;3&#39; => array(&#39;id&#39;=>4,&#39;prize&#39;=>&#39;4G优盘&#39;,&#39;v&#39;=>0), 
    &#39;4&#39; => array(&#39;id&#39;=>5,&#39;prize&#39;=>&#39;10Q币&#39;,&#39;v&#39;=>1), 
    &#39;5&#39; => array(&#39;id&#39;=>6,&#39;prize&#39;=>&#39;下次没准就能中哦&#39;,&#39;v&#39;=>100), 
);  


//code here eg:unset($prize_arr[&#39;0&#39;])
foreach ($prize_arr as $key => $val) { 
    $arr[$val[&#39;id&#39;]] = $val[&#39;v&#39;]; 
} 

$rid = get_rand($arr); //根据概率获取奖项id

$res[&#39;yes&#39;] = $prize_arr[$rid-1][&#39;prize&#39;]; //中奖项
//将中奖项从数组中剔除,剩下未中奖项,如果是数据库验证,这里可以省掉
unset($prize_arr[$rid-1]); 
shuffle($prize_arr); //打乱数组顺序
for($i=0;$i<count($prize_arr);$i++){ 
    $pr[] = $prize_arr[$i][&#39;prize&#39;]; 
} 
$res[&#39;no&#39;] = $pr; 
echo "<pre class="brush:php;toolbar:false">";
print_r($res);
// echo json_encode($res);
ログイン後にコピー
ログイン後にコピー

2. [代码]抽奖概率

<?php 

function get_rand($proArr) { 
    $result = &#39;&#39;; 

    //概率数组的总概率精度
    $proSum = array_sum($proArr); 

    //概率数组循环
    foreach ($proArr as $key => $proCur) { 
        $randNum = mt_rand(1, $proSum); 
        if ($randNum <= $proCur) { 
            $result = $key; 
            break; 
        } else { 
            $proSum -= $proCur; 
        } 
    } 
    unset ($proArr); 

    return $result; 
}

$prize_arr = array( 
    &#39;0&#39; => array(&#39;id&#39;=>1,&#39;prize&#39;=>&#39;平板电脑&#39;,&#39;v&#39;=>0), 
    &#39;1&#39; => array(&#39;id&#39;=>2,&#39;prize&#39;=>&#39;数码相机&#39;,&#39;v&#39;=>0), 
    &#39;2&#39; => array(&#39;id&#39;=>3,&#39;prize&#39;=>&#39;音箱设备&#39;,&#39;v&#39;=>0), 
    &#39;3&#39; => array(&#39;id&#39;=>4,&#39;prize&#39;=>&#39;4G优盘&#39;,&#39;v&#39;=>0), 
    &#39;4&#39; => array(&#39;id&#39;=>5,&#39;prize&#39;=>&#39;10Q币&#39;,&#39;v&#39;=>1), 
    &#39;5&#39; => array(&#39;id&#39;=>6,&#39;prize&#39;=>&#39;下次没准就能中哦&#39;,&#39;v&#39;=>100), 
);  


//code here eg:unset($prize_arr[&#39;0&#39;])
foreach ($prize_arr as $key => $val) { 
    $arr[$val[&#39;id&#39;]] = $val[&#39;v&#39;]; 
} 

$rid = get_rand($arr); //根据概率获取奖项id

$res[&#39;yes&#39;] = $prize_arr[$rid-1][&#39;prize&#39;]; //中奖项
//将中奖项从数组中剔除,剩下未中奖项,如果是数据库验证,这里可以省掉
unset($prize_arr[$rid-1]); 
shuffle($prize_arr); //打乱数组顺序
for($i=0;$i<count($prize_arr);$i++){ 
    $pr[] = $prize_arr[$i][&#39;prize&#39;]; 
} 
$res[&#39;no&#39;] = $pr; 
echo "<pre class="brush:php;toolbar:false">";
print_r($res);
// echo json_encode($res);
ログイン後にコピー
ログイン後にコピー


 以上就是抽奖概率的内容,更多相关内容请关注PHP中文网(www.php.cn)!


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

時系列確率予測のための分位回帰 時系列確率予測のための分位回帰 May 07, 2024 pm 05:04 PM

元のコンテンツの意味を変更したり、コンテンツを微調整したり、コンテンツを書き直したり、継続したりしないでください。 「分位回帰はこのニーズを満たし、定量化された確率で予測間隔を提供します。これは、特に応答変数の条件付き分布が重要な場合に、予測変数と応答変数の間の関係をモデル化するために使用される統計手法です。従来の回帰とは異なります」図 (A): 分位回帰 分位回帰の概念は推定です。一連の回帰子 X と変数の間の線形関係をモデル化する方法です。被説明変数 Y の分位数。既存の回帰モデルは、実際には被説明変数と説明変数の関係を調べる手法です。説明変数と被説明変数の関係に焦点を当てます。

Excel宝くじアプレットの作り方 Excel宝くじアプレットの作り方 Mar 20, 2024 am 11:40 AM

私たちは日々の仕事の中で、くじを引く必要があることがたくさんありますが、従来は紙の数字を使ってランダムに数字を引く方法が主流でしたが、電子ソフトの発達により、コンピュータを使ってくじを引くことができるようになりました。今日はExcel宝くじアプレットの作り方です。 1. まず、Excel ソフトウェアを開き、作成したテーブルを開きます (テーブルには私たちの名前が含まれている必要があります)。 2. 次に、下図に示すように、右側のセルを結合して、今夜幸運な人を黒で塗りつぶし、下のセルを結合して赤で塗りつぶします。 3. 次に、下の図に示すように、赤い領域に randbetween 関数を入力し、最初の行を 2 に、最後の行を 7 に設定します。 4. 次に、前に ind を入力します。

PHP抽選システムの設計と実装の詳細な説明 PHP抽選システムの設計と実装の詳細な説明 Mar 01, 2024 am 09:51 AM

PHP 抽選システムの設計と実装の詳細な説明 1. 概要 抽選は、多くの Web サイトやアプリケーションで使用されるマーケティング ツールであり、抽選を通じてユーザーをアクティビティに参加させ、ユーザーの対話性を高め、ユーザーの粘着性を向上させることができます。この記事では、PHP言語を使用して簡単な抽選システムを設計および実装する方法を詳しく紹介します。この記事を読むことで、読者は宝くじシステムの構築原理と具体的なコード実装を理解できるようになります。 2. システム設計 宝くじシステムを設計する前に、まずシステムの機能要件とプロセスを決定する必要があります。 1つ

Vue を使用して宝くじの特殊効果を実装する方法 Vue を使用して宝くじの特殊効果を実装する方法 Sep 19, 2023 am 10:18 AM

Vue を使用して宝くじホイールの特殊効果を実装する方法 人気のあるマーケティング ツールとして、宝くじアクティビティはさまざまなアクティビティによく登場します。楽しさと対話性を高めるために、Vue フレームワークを使用して宝くじホイールの特殊効果を実装できます。この記事では、Vue を使用してこの特殊効果を実現する方法と、具体的なコード例を紹介します。まず、ターンテーブルのステータスとアニメーションを制御するための Vue インスタンスを作成する必要があります。この例では、賞品リスト、ホイールが回転しているかどうか、ホイールの初期状態を定義する必要があります。

PHP を使用して宝くじ関数を開発する手順とテクニック PHP を使用して宝くじ関数を開発する手順とテクニック Feb 29, 2024 pm 04:42 PM

タイトル: PHP を使用して宝くじ関数を開発するための手順とテクニック Web サイト開発では、ユーザーの対話性と魅力を高めるために宝くじ関数がよく使用されます。 PHP 言語を使用して宝くじ関数を開発するのが一般的な方法です。この記事では、PHPを使用して簡単な抽選関数を開発する方法と具体的なコード例を紹介します。ステップ 1: データベースを準備する まず、賞品情報や参加ユーザー情報など、宝くじの関連データを保存するための MySQL データベースを作成する必要があります。次の SQL コマンドを使用して、

PHPで宝くじを実装する方法 PHPで宝くじを実装する方法 Dec 19, 2022 am 10:10 AM

PHP で宝くじを実装する方法: 1. PHP サンプル ファイルを作成する; 2. 賞金プールが所有する賞品を定義する; 3. "shuffle($prize);" メソッドを通じてランダムな宝くじを実行する; 4. "print_r($プライズ[0]) ;" 宝くじの結果を印刷するだけです。

MySQL は宝くじ機能と賞品テーブルを作成する手順を実装します MySQL は宝くじ機能と賞品テーブルを作成する手順を実装します Jul 01, 2023 am 09:29 AM

宝くじ機能を実装するために MySQL で賞品テーブルを作成する手順 宝くじ活動は一般的なマーケティング ツールとして、さまざまな分野で広く使用されています。宝くじ機能を実装するには、MySQL データベースを使用して賞品テーブルを作成し、データベース操作を通じて宝くじプロセス全体を実装します。この記事では、MySQL を使用して賞金テーブルを作成し、抽選機能を実装する手順を紹介します。ステップ 1: 賞品テーブルを作成する MySQL では、CREATETABLE ステートメントを使用して賞品テーブルを作成できます。賞品リストには少なくとも次のものが含まれている必要があります

Douyin宝くじの当選率を上げるにはどうすればよいですか?どのようなテクニックがありますか? Douyin宝くじの当選率を上げるにはどうすればよいですか?どのようなテクニックがありますか? Mar 07, 2024 pm 02:43 PM

ソーシャルメディアが隆盛を極めた今日の時代において、Douyinのショートビデオは人々の生活に欠かせないものとなっています。 Douyin での抽選にも、数え切れないほどのユーザーの注目と参加が集まりました。しかし、多くの人はよく問題に遭遇します。Douyin 宝くじの当選率を高めるにはどうすればよいですか?この記事では、Douyin宝くじでより幸運を得るために、当選率を上げるためのいくつかのヒントをまとめます。 1. 宝くじのルールをよく読む 当選率を上げるためには、宝くじのルールを無視することはできません。各抽選会には参加条件、抽選時間、抽選方法など詳細なルールがございます。参加する前に必ずルールをよく読み、すべての条件を満たしていることを確認してください。場合によっては、ルールを注意深く読むことで隠れたチャンスを発見でき、それによって成功の可能性が高まります。

See all articles