php 彩票类 lottery
<?php /*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/ /**
* Lottery class
*
* @author Rafal Strojek <strojek.rafal@gmail.com>
* @copyright 2014 (c) Rafal Strojek
* @version 0.1
*/ class Lottery
{
/**
* Default parameters
*/
private $params = array(); /**
* Numbers to drawn
*/
private $numbers = array(); /**
* Constructor
*
* @param array $params User-defined parameters
*/
public function __construct($params = array())
{
$this->params = array_merge($this->getDefaultParameters(),$params);
$this->numbers = range($this->params['from'], $this->params['to'], 1); $this->seedRand();
} /**
* Gets default parameters
*
* @return array Default Parameters
*/
public function getDefaultParameters()
{
return array(
'from' => 1,
'to' => 49,
'numbers' => 6,
'seed' => (int) ((float) microtime() * 1000000),
'pow' => pow(2,24),
);
} /**
* Gets parameters
*
* @return array Lottery parameters
*/
public function getParameters()
{
return $this->params;
} public function getSeed()
{
return (int) $this->params['seed'];
} private function setSeed($seed = null)
{
$this->params['seed'] = ($seed) ? $seed : $this->makeSeed(); // Return instance to shortcut
return $this;
} private function seedRand()
{
mt_srand($this->getSeed());
} private function makeSeed()
{
return (int) ((mt_rand() + ((float) microtime() * 1000000)) % $this->params['pow']);
} public function createTicket()
{
$ticket = array();
$array = $this->numbers; for($i = 0; $i < $this->params['numbers']; $i++)
{
$this->setSeed()->seedRand();
$key = mt_rand(0, (count($array) - 1)); $ticket[$i] = $array[$key];
array_splice($array, $key, 1);
} asort($ticket); return $ticket;
} public function createTickets($count = null)
{
if($count <= 0)
{
return array();
} $count = min(500, max(1, $count));
$tickets = array();
for($i = 0; $i < $count; $i++)
{
$tickets[$i] = $this->createTicket();
} return $tickets; }
}
php 彩票类 lottery的更多相关文章
- EX14 彩票中奖 (lottery.pas/c/cpp)
[题目描述]小明想试试运气去购买彩票,所以他开始研究彩票大乐透的玩法:超级大乐透是指由购买者从01—35共35个号码中选取5个号码为前区号码,并从01—12共12个号码中选取2个号码为后区号码组合为一 ...
- 今天分享一个抽奖的类Lottery
/* * Copyright (C) 2014 Jason Fang ( ijasonfang@gmail.com ) * * Licensed under the Apache License, V ...
- 彩票APP将演绎“快鱼吃慢鱼”的发展轨迹
思科CEO钱伯斯有句名言,叫"快鱼吃慢鱼",他觉得"在Internet经济下,大公司不一定打败小公司,可是快的一定会打败慢的."对此观点,笔者表示部分认同,首先 ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- 使用 Eclipse C/C++ Development Toolkit 开发应用程序
使用 Eclipse C/C++ Development Toolkit 开发应用程序 (转) 来自http://blog.csdn.net/favory/article/details/189080 ...
- Dominate【操作系统的经典算法】
此篇文章我们来谈一谈操作系统中都出现过哪些算法,请欣赏下图 ↓ 进程和线程管理中的算法 进程和线程在调度时候出现过很多算法,这些算法的设计背景是当一个计算机是多道程序设计系统时,会频繁的有很多进程或者 ...
- 2.5w字 + 36 张图爆肝操作系统面试题,太牛逼了!
欢迎各位大佬访问我的 github ,跪求 star bestJavaer 大家好,我是 cxuan,我之前汇总了一下关于操作系统的面试题,最近又重新翻阅了一下发现不是很全,现在也到了面试季了,所以我 ...
- laravel7 百度智能云检测图片是否合规
APP 文件下建一个Libs目录建一个BaiduService文件,需要检测引入进行调用即可 BaiduService文件内容如下 <?php namespace App\Libs; use A ...
- 论文翻译:2021_Performance optimizations on deep noise suppression models
论文地址:深度噪声抑制模型的性能优化 引用格式:Chee J, Braun S, Gopal V, et al. Performance optimizations on deep noise sup ...
随机推荐
- VC++ UTF-8与GBK格式转换
// 注释:多字节包括GBK和UTF-8 int GBK2UTF8(char *szGbk,char *szUtf8,int Len) { // 先将多字节GBK(CP_ACP或ANSI)转换成宽字符 ...
- python 3.3.2 爬虫记录
网络上大部分关于python爬虫的介绍以及代码讲解,都用的是python2.7或以下版本,用python3.x版本的甚少. 在python3.3.2版本中,没有urllib2这个库,也没有cookie ...
- C语言数据类型
1.概述 C 语言包含的数据类型如下图所示: 2.各种数据类型介绍 2.1整型 整形包括短整型.整形和长整形. 2.1.1短整形 short a=1; 2.1.2整形 一般占4个字节(32位),最高位 ...
- IIS7.0配置HTTPS安全类型的网站
HTTPS,它是一个安全通信通道,是基于HTTP开发,用于在客户计算机和服务器之间交换信息.它使用安全套接字 层(SSL)进行信息交换,简单来说它是HTTP的安全版.主要在一些对安全性要求比较高的网站 ...
- Handler发送Message
用Handler更新UI package activity.cyq.handlermessage; import android.content.res.Resources; import andro ...
- DWZ (JUI) 教程 tree 控件的选中事件
DWZ (JUI) 教程 tree 控件的选中事件 先简单说一下流程 第一步 当然是先定义好回调事件了 function checkCallback(json){ ........... ...... ...
- 分享web前端七款HTML5 Loading动画特效集锦
以前我们大部分的Loading动画都是利用gif图片实现的,这种图片实现Loading动画的方法虽然也很不错,但是作为HTML5开发者来说,如果能利用HTML5和CSS3实现这些超酷的Loading动 ...
- 杭电ACM2080--夹角有多大II
http://acm.hdu.edu.cn/showproblem.php?pid=2080 /* //Author:nunu // #include <stdio.h> #include ...
- SilverLight命名空间详解-新手入门
1.核心命名空间 1.xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"是silverlight的核 ...
- ASCII 码表
下面的 ASCII 码表包含数值在0-127之间的字符的十进制.八进制以及十六进制表示. 十进制 八进制 十六进制 字符 描述 0 0 00 NUL 1 1 01 SOH start of hea ...