<?php function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $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; }
prime 配列は、この宝くじのすべての賞品情報を記録する 2 次元配列です。id は当選レベルを表し、prise は賞品を表し、v は当選確率を表します。 v は整数である必要があることに注意してください。対応する賞の v を 0 に設定できます。これは、賞を獲得する確率が 0 であることを意味します。配列 (基数) 内の v の合計。基数が大きいほど、精度が高くなります。確率を反映できます。この例では、v の合計が 100 である場合、タブレットが当たる確率は 1% ですが、v の合計が 10,000 である場合、当たる確率は 1 万分の 1 です。 $proArr は事前に設定された配列です。配列が array(100,200,300,400) であるとします。まず、確率範囲 1,1000 から最初の数値をスクリーニングして、その出現確率範囲内にあるかどうかを確認します。そうでない場合は、確率空間とは、kの値から先ほどの数値を引いた確率空間で、この場合はマイナス100となり、2番目の数値が1,900の範囲でフィルタリングされることになります。このようにして、審査が終了するまで、必ず要件を満たす数字が存在します。それは箱の中のものに触れるのと同じで、最初のものがそこになく、2 つ目がそこになく、3 つ目が存在しない場合、最後のものが存在するはずです。このアルゴリズムはシンプルで非常に効率的です。重要なのは、このアルゴリズムが以前のプロジェクト、特に大量のデータを含むプロジェクトに適用されているということです。効率は非常に優れています。
このサイトのすべてのリソースはネチズンによって提供されたもの、または主要なダウンロード サイトによって転載されたものです。ソフトウェアの整合性をご自身で確認してください。このサイトのすべてのリソースは学習の参考のみを目的としています。商業目的で使用しないでください。そうでない場合は、すべての結果に対して責任を負うことになります。侵害がある場合は、削除するためにご連絡ください。連絡先情報: admin@php.cn
関連記事
16 Aug 2017
さて、私たちの仕事では、ショッピングモールであれ、企業のウェブサイトであれ、その他の主流のウェブサイトであれ、企業は多くの場合、期間限定の活動や優待活動を行っています。もちろん、最も重要なことは宝くじです。より多くの集客を図るために、宝くじを利用します。今日は、この宝くじの当選確率のアルゴリズムについて説明します。
21 Jun 2023
デジタル時代の到来に伴い、図書館は徐々にデジタル変革を実現し、従来の紙ベースの管理からデジタル管理に徐々に移行しています。デジタル管理の過程で、Web サイト アプリケーションを使用して図書館を管理することは、図書館が書籍、貸出記録、ユーザー アカウント、その他の情報をより適切に管理できるため、非常に一般的な方法になりました。 Yii フレームワークを使用して図書館 Web サイトを作成することは、非常に簡単かつ効果的な方法になりました。この記事では、Yii フレームワークを使用して図書館 Web サイトを作成する方法を紹介します。 Y
13 Jun 2016
図書館管理システムの管理者を確認する問題について、私はPHPの初心者で、研究書にある図書館管理システムのソースコード一式をwamp5の統合環境にインストールしました。 MYSQL の DATA フォルダーとその他の設定が完了すると、login.php インターフェイスのアカウントとパスワードが正しい場合でも、チェックログ コードを投稿するのを手伝ってください。 <?phps
29 Jul 2016
図書館管理システムの使用例図: 図書館管理システムの使用例図 図書館管理プログラム (1): このレベルのプログラムで使用されるデータ テーブル構造: # ------------------- --- ---------------------------------- # # データテーブル構造 'author' # CREATE TABLE author ( author_id int (6) DEFAULT '0' NOT NULL auto_increment、first_name varchar(20)
08 May 2023
フロントエンド開発者として、新しいテクノロジーを学ぶことは不可欠です。その中でも、Vue.js は現在最も人気のある JavaScript フレームワークの 1 つですが、関連する書籍は図書館にありますか?この記事では、図書館で Vue.js の書籍を検索する方法を紹介します。まず、私たちの街の公立図書館に行きます。公共図書館は、幅広い書籍や学術雑誌を提供する貴重なリソースです。図書館の Web サイトにログインし、検索エンジンを使用して Vue.js に関連する書籍を見つけることができます。第二に、学校を見つけることができます
02 Nov 2023
C++ を使用してシンプルなライブラリ管理システムを実装するにはどうすればよいですか?図書館は知識と文化を広める重要な場所であり、効率的な図書館管理システムは図書館の運営効率を向上させ、読者が本の貸し出しや図書館リソースの管理を容易にします。この記事では、C++ プログラミング言語を使用して簡単なライブラリ管理システムを実装する方法を紹介します。まず、システムに必要な基本的なデータ構造を定義する必要があります。図書館管理システムでは、最も基本的なデータ構造は書籍とリーダーです。それらを表す 2 つのクラスを作成できます。本
ホットツール Tags
Hot Tools
依存関係注入コンテナー用の PHP ライブラリ
依存関係注入コンテナー用の PHP ライブラリ
50 個の優れた古典的な PHP アルゴリズムのコレクション
古典的な PHP アルゴリズム、優れたアイデアを学び、思考を広げます
画像を最適化するための小さな PHP ライブラリ
画像を最適化するための小さな PHP ライブラリ