5位随机数重复的概率 php_PHP产生不重复随机数的5个方法总结

无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地。在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下(ps:方法1、4、5是我常用的,其余来自网络整理)

方法一:

$numbers = range (1,50);

//shuffle 将数组顺序随即打乱

shuffle ($numbers);

//array_slice 取该数组中的某一段

$num=6;

$result = array_slice($numbers,0,$num);

print_r($result);

?>

方法二:

$numbers = range (1,20);

//播下随机数发生器种子,可有可无,测试后对结果没有影响

srand ((float)microtime()*1000000);

shuffle ($numbers);

//跳过list第一个值(保存的是索引)

while (list(, $number) = each ($numbers)) {

echo "$number ";

}

?>

方法三:

function NoRand($begin=0,$end=20,$limit=5){

$rand_array=range($begin,$end);

shuffle($rand_array);//调用现成的数组随机排列函数

return array_slice($rand_array,0,$limit);//截取前$limit个

}

print_r(NoRand());

?>

上述可以在1-20间随机产生5个不重复的值

方法四:

$tmp=array();

while(count($tmp)<5){

$tmp[]=mt_rand(1,20);

$tmp=array_unique($tmp);

}

print_r($tmp);

?>

方法五:

$tmp = range(1,30);

print_r(array_rand($tmp,10));

?>

这个可能是比叫简单的了(ps:如果在range中指定了步长,就必须注意array_rand的第二个参数是否超出$tmp的长度)。

PHP提供非常丰富的数组函数,产生随机数大多可以从数组这个角度出发,若你还有方法提供,欢迎给出,文章将持续更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch实现图像分类代码实例

图像多标签分类例子 import os import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision.datasets as datasets import torchvision.models as models import matplotlib.pyplot as plt from matplotlib.ticker import MultipleL…

空调吸气和排气_吸气剂和二传手被认为有害

空调吸气和排气Java程序员习惯性地用“ getters”和“ setters”来修饰类&#xff0c;这种做法根深蒂固&#xff0c;以至于几乎没有人质疑为什么这样做或是否应该这样做。 最近&#xff0c;我认为最好不要这样做&#xff0c;并且我开始在编写的Java代码中避免使用它。 在这篇博…

Sublime Text for Mac 如何格式化代码

文章目录格式化 HTML/CSS/JS格式化 Java/C/C格式化 HTML/CSS/JS 格式化 HTML/CSS/JS&#xff0c;请安装插件&#xff1a;html-css-js prettify 格式化的快捷键&#xff1a;Shift Cmd H html-css-js prettify 的简介&#xff1a; Usage Tools -> Command Palette (CmdS…

ic启动器我的世界_hmcl启动器下载-我的世界HMCL启动器下载 v3.3.172官方最新版--pc6下载站...

我的世界HMCL启动器是我的世界游戏玩家必备的游戏启动器&#xff0c;是三年来超过使用3亿次的老牌启动器&#xff0c;不需要其他任何设置&#xff0c;操作非常方便&#xff0c;本站提供现在最新版本下载。我的世界HMCL启动器是我的世界游戏玩家必备的游戏启动器&#xff0c;是三…

C++核心编程笔记

C核心编程1 内存分区模型1.1 程序运行前1.2 程序运行后1.3 new操作符2 引用2.1 引用的基本使用2.2 引用注意事项2.3 引用做函数参数2.4 引用做函数返回值2.5 引用的本质2.6 常量引用3 函数提高3.1 函数默认参数3.2 函数占位参数3.3 函数重载3.3.1 函数重载概述3.3.2 函数重载注…

Sublime Text 如何设置组合快捷键

Sublime 有个功能叫再次缩进&#xff08;Reindent&#xff09;&#xff0c;我就以这个功能为例讲下如何设置快捷键&#xff0c;这个功能的菜单路径是&#xff1a;Edit ➠ Line ➠ Reindent&#xff0c;有人说这个再次缩进可以格式化代码&#xff0c;扯淡&#xff0c;缩进两下也…

朝着理想坚实迈进_坚实原则:开放/封闭原则

朝着理想坚实迈进先前我们讨论了单一责任原则。 关于实体原则首字母缩写&#xff0c; 打开/关闭原则是该行中的第二个原则。 “软件实体&#xff08;类&#xff0c;模块&#xff0c;功能等&#xff09;应打开以进行扩展&#xff0c;但应关闭以进行修改” 通过采用该原理&…

协程asyncio_Python 异步模块 asyncio 中的协程与任务

协程&#xff08;Coroutine&#xff09;是允许执行被挂起、恢复、以及取消的程序。Python 3 中最初是使用 asyncio.coroutine 装饰器和 yield from 关键字组合来实现协程。单词 yield 在这里并非在生成器&#xff08;Generator&#xff09;中所表示的“产出”&#xff0c;而是交…

ie8兼容性视图灰色修复_IE8网页显示不正常 用”兼容性视图”搞定

网页显示不正常&#xff0c;出现图片错位&#xff0c;文字跑远……等等&#xff0c;别急&#xff0c;试试IE8自带的”兼容性视图”功能吧!其实出现网页显示问题&#xff0c;一般不是您的电脑或者浏览器有问题&#xff0c;而是由于各网站开发标准不同&#xff0c;所以在不同的浏…

GAN对抗生成网络原始论文理解笔记

文章目录论文&#xff1a;Generative Adversarial Nets符号意义生成器(Generator)判别器(Discriminator)生成器和判别器的关系GAN的训练流程简述论文中的生成模型和判别模型GAN的数学理论最大似然估计转换为最小化KL散度问题定义PGP_GPG​全局最优论文&#xff1a;Generative A…

php cdi_CDI和lambda的策略模式

php cdi策略设计模式在运行时动态选择一种实现算法&#xff0c;一种策略。 该模式可用于根据情况选择不同的业务算法。 我们可以将不同的算法实现定义为单独的类。 或者&#xff0c;我们利用Java SE 8 lambda和函数&#xff0c;这些lambda和函数在此处用作轻量级策略实现。 C…

Linux 命令之 cp -- 复制文件或目录

文章目录一、命令介绍二、常用选项三、命令示例&#xff08;一&#xff09;复制某个目录到某个目录下&#xff08;二&#xff09;复制文件&#xff08;三&#xff09;复制文件到目标目录下&#xff0c;若存在文件则备份&#xff08;四&#xff09;复制某个目录的全部文件到某个…

向上累积频数怎么算_excel数据分析向上累计和向下累计怎么做呢

2016-07-08 00:25赵飞虎 客户经理一、Excel在分析性测试、复核中的运用注册会计师在分析审计风险确定重点审计领域、重要性水平和重大异常经济业务事项时&#xff0c;常常要对被审计单位的会计报表进行分析性测试和复核。在执行具体审计程序时&#xff0c;也常常要对本期数和上…

okta使用_使用Okta的单点登录保护您的Vert.x服务器

okta使用“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕&#xff1f; 尝试使用Okta API进行托管身份验证&#xff0c;授权和多因素身份验证。 Vert.x是Spring生态系统中增长最快的元素之一&#xff0c;保护Vert.x服务器可…

Linux 命令之 make -- GNU的工程化编译工具

文章目录一、命令介绍二、常用选项三、命令示例&#xff08;一&#xff09;指定命令 make 的工作目录一、命令介绍 make 命令是 GNU 的工程化编译工具&#xff0c;用于编译众多相互关联的源代码文件&#xff0c;还可以编辑内核或模块&#xff0c;以实现工程化的管理&#xff0…

SDL2笔记

SDL2基本操作头文件主函数初始化创建窗口窗口暂停以及事件讲解销毁窗口(释放指针)并退出加载bmp图片新加载图片的方法(使用渲染、纹理)加载其他格式的图片头文件 #include "SDL.h" #include "SDL_image.h"主函数 int main(int argc,char* argv[]) //一定…

操作系统时间片轮换_《操作系统_时间片轮转RR进程调度算法》

转自:https://blog.csdn.net/houchaoqun_xmu/article/details/55540250时间片轮转RR进程调度算法一、概念介绍和案例解析时间片轮转法 - 基本原理&#xff1a;在早期的时间片轮转法中&#xff0c;系统将所有的就绪进程按先来先服务的原则排成一个队列&#xff0c;每次调度时&am…

java ee打印功能_Java EE 8的前5个新功能

java ee打印功能备受期待的Java Enterprise Edition 8版本具有两个令人兴奋的新API&#xff08;JSON绑定1.0和Java EE Security 1.0&#xff09;&#xff0c;并且对当前API进行了改进&#xff08;JAX-RS 2.1&#xff0c;Bean Validation 2.0&#xff0c;JSF 2.3&#xff0c;CDI…

SDL2事件笔记

SDL2事件窗口关闭的事件&#xff1a;鼠标事件鼠标点击事件鼠标移动事件键盘事件用SDL_PollEvent(&event)来检测是否有事件&#xff0c;用SDL_Event的实例属性event.type来获取事件。 窗口关闭的事件&#xff1a; SDL_QUIT鼠标事件 鼠标点击事件 鼠标点击事件&#xff1…

什么是复数

我们把形如 zabi&#xff08;a、b均为实数&#xff09;的数称为复数。其中&#xff0c;a 称为实部&#xff0c;b 称为虚部&#xff0c;i 称为虚数单位。当 z 的虚部 b&#xff1d;0 时&#xff0c;则 z 为实数&#xff1b;当 z 的虚部 b≠0 时&#xff0c;实部 a&#xff1d;0 …