可自定义概率,按需求排除奖项 无 ?php/** * 抽奖函数升级版,可排除若干奖项 */class Lottery { static public $rate; static public $ignore; /** * * @param type $rate 概率设置 * @param type $ignore 忽略的奖项 * @return 调用实例化后的对象方法 * @e
可自定义概率,按需求排除奖项
<?php /** * 抽奖函数升级版,可排除若干奖项 */ class Lottery { static public $rate; static public $ignore; /** * * @param type $rate 概率设置 * @param type $ignore 忽略的奖项 * @return 调用实例化后的对象方法 * @example Lottery::runOnce(array(20, 10, 10, 10), array(0)); */ static public function runOnce($rate = array(10, 10, 10, 10), $ignore = array()) { self::$rate = $rate; self::$ignore = $ignore; $obj = new self; return $obj->lotteryProcess(); } /** * 处理抽奖 * @return type */ public function lotteryProcess() { $rateSum = array_sum(self::$rate); //概率之和 //考虑用户输入的概率之和不等于100 if ($rateSum < 100) { array_push(self::$rate, 100 - $rateSum); } elseif ($rateSum > 100) { die('The rate sum over 100%!'); } //处理忽略奖项 $rateCount = count(self::$rate); foreach (self::$rate as $key => $value) { if (in_array($key, self::$ignore)) { self::$rate[$rateCount - 1]+=self::$rate[$key]; self::$rate[$key] = 0; } $seedRaw[$key] = self::$rate[$key] * 100; //概率放大100被备用 } $seed = $this->arraySum($seedRaw); //处理数组 $randVal = mt_rand(0, 10000); return $this->judge($seed, $randVal); } /** * 从0-10000重新组织数组,每个值为之前各项的累加 * @param array $seedRaw * @return array */ private function arraySum(array$seedRaw) { foreach ($seedRaw as $key => $value) { $tmpSum = 0; for ($i = 0; $i < $key; $i++) { $tmpSum+=$seedRaw[$i]; } $seed[$key] = $tmpSum; } array_push($seed, 10000); return $seed; } /** * 根据随机值判断此次中了第几个奖项 * @param type $seed * @param type $rand * @return int */ private function judge($seed, $rand) { array_push($seed, NULL); //凑数 for ($i = 0; $i < count($seed) - 1; $i++) { if ($rand >= $seed[$i] && $rand < $seed[$i + 1]) { return $i; } } } } ini_set('display_errors', 'on'); $l0 = 0; $l1 = 0; $l2 = 0; $l3 = 0; $l4 = 0; $l5 = 0; for ($i = 0; $i <= 10000; $i++) { $result = Lottery::runOnce(array(20, 10, 10, 10), array(0, 1)); if ($result === 0) $l0++; if ($result == 1) $l1++; if ($result == 2) $l2++; if ($result == 3) $l3++; if ($result == 4) $l4++; } echo '0:' . $l0 . '<br/>1:' . $l1 . '<br/>2:' . $l2 . '<br/>3:' . $l3 . '<br/>4:' . $l4;

平时的工作中会遇到很多需要抽签进行的内容,传统的方法还是用纸质的号码随机抽号,随着电子软件的发展,我们可以用电脑制作抽签,今天欠们给大家分享的课程是excel抽奖小程序如何制作。1、首先我们打开Excel软件,打开我们准备好的表格,表格中要包含我们人的名字。 2、接着我们对右边的单元格进行合并,将今晚谁幸运填充为黑色,并将下方的单元格合并填充为红色,如下图所示。 3、接着我们在红色区域中输入randbetween函数,设置第一行为2,最后一行为7,如下图所示。 4、接着我们在前面输入ind

Python 中有许多方法可以帮助我们理解代码的内部工作原理,良好的编程习惯,可以使我们的工作事半功倍!例如,我们最终可能会得到看起来很像下图中的代码。虽然不是最糟糕的,但是,我们需要扩展一些事情,例如:load_las_file 函数中的 f 和 d 代表什么?为什么我们要在 clay 函数中检查结果?这些函数需要什么类型?Floats? DataFrames?在本文中,我们将着重讨论如何通过文档、提示输入和正确的变量名称来提高应用程序/脚本的可读性的五个基本技巧。1. Comments我们可

连续分级概率评分(Continuous Ranked Probability Score, CRPS)或“连续概率排位分数”是一个函数或统计量,可以将分布预测与真实值进行比较。机器学习工作流程的一个重要部分是模型评估。这个过程本身可以被认为是常识:将数据分成训练集和测试集,在训练集上训练模型,并使用评分函数评估其在测试集上的性能。评分函数(或度量)是将真实值及其预测映射到一个单一且可比较的值 [1]。例如,对于连续预测可以使用 RMSE、MAE、MAPE 或 R 平方等评分函数。如果预测不是逐点

PHP抽奖系统设计与实现详解一、概述抽奖活动是许多网站和应用都会使用的一种营销手段,通过抽奖可以吸引用户参与活动,增加用户互动性,提升用户粘性。在本文中,我们将详细介绍如何使用PHP语言来设计和实现一个简单的抽奖系统。通过本文的学习,读者将会了解抽奖系统的搭建原理以及具体的代码实现。二、系统设计在设计一个抽奖系统之前,我们首先需要确定系统的功能需求和流程。一

js是弱类型语言,不能像C#那样使用param关键字来声明形参是一个可变参数。那么js中,如何实现这种可变参数呢?下面本篇文章就来聊聊JavaScript函数可变参数的实现方法,希望对大家有所帮助!

Python 中的 main 函数充当程序的执行点,在 Python 编程中定义 main 函数是启动程序执行的必要条件,不过它仅在程序直接运行时才执行,而在作为模块导入时不会执行。要了解有关 Python main 函数的更多信息,我们将从如下几点逐步学习:什么是 Python 函数Python 中 main 函数的功能是什么一个基本的 Python main() 是怎样的Python 执行模式Let’s get started什么是 Python 函数相信很多小伙伴对函数都不陌生了,函数是可

如何使用Vue实现抽奖转盘特效抽奖活动作为一种受欢迎的营销手段,经常出现在各种活动中。为了增加趣味性和互动性,我们可以使用Vue框架实现一个抽奖转盘特效。这篇文章将会介绍如何使用Vue来实现这一特效,并给出具体的代码示例。首先,我们需要创建一个Vue实例,用于控制转盘的状态和动画。在这个实例中,我们需要定义转盘的初始状态,包括奖品列表、转盘是否正在旋转、转盘

好嘞,今天我们继续剖析下Python里的类。[[441842]]先前我们定义类的时候,使用到了构造函数,在Python里的构造函数书写比较特殊,他是一个特殊的函数__init__,其实在类里,除了构造函数还有很多其他格式为__XXX__的函数,另外也有一些__xx__的属性。下面我们一一说下:构造函数Python里所有类的构造函数都是__init__,其中根据我们的需求,构造函数又分为有参构造函数和无惨构造函数。如果当前没有定义构造函数,那么系统会自动生成一个无参空的构造函数。例如:在有继承关系


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Atom editor mac version download
The most popular open source editor
